ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:384.49KB ,
资源ID:18415271      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18415271.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(创建broker工作流Word格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

创建broker工作流Word格式.docx

1、7.拖拽一个While活动到工作流视图设计器界面上,把它放到EventHandlingScope活动内。8.指定它的Condition属性为代码条件而不是声明性规则条件,指定该事件处理程序的名称为TestContinue。一旦Visual Studio添加了该TestContinue事件处理程序后,需要回到工作流视图设计器上,还有更多的活动要进行添加。9.While活动只能接受唯一的一个子活动,因此拖拽一个Sequence活动到该While活动中。10.在这里你需要一个Code活动来对股票价值进行蒙特卡罗模拟,因此拖拽一个Code活动到视图设计器界面上,把它放进你在前一步骤所添加的Sequen

2、ce活动中。在属性窗口中把它重命名为updateMarket。11.指定updateMarket这个Code活动的ExecuteCode属性为UpdateMarketValues。在Visual Studio添加了相应的事件处理程序后回到工作流视图设计器界面上来,以便继续布置你的工作流。12.在模拟完成后(你将添加的代码实际上就是进行模拟),你需要把这些潜在的进行了修改的值传给宿主应用程序。为此,把鼠标指针移到工具箱上,找到你在IWFBroker中创建的MarketUpdate活动,把它拖到视图设计器界面上并放到Sequence活动中的你在前一步骤中所添加的Code活动的下面。13.Marke

3、tUpdate活动需要把一小段XML放送给宿主,要做到这一点,它必须绑定到容纳有此时将发送的XML的字段属性。为此,在Visual Studio的属性面板中选择xmlMarketValues属性,然后点击浏览(.)按钮,打开一个“将xmlMarketValues绑定到活动的属性”的对话框。然后点击绑定到新成员选项卡,点击创建属性,在新成员名称中输入Updates。最后点击确定。Visual Studio就添加了Updates这个依赖属性。14.为了让你能处理来自于宿主的事件,拖拽一个Listen活动到设计器界面上,把它放进Sequence活动中。15.假如你回忆一下,你会记起IWFBroker

4、接口声明了五个事件,它们中的一个是我们已经用过的Stop,还有四个事件要去处理。Listen活动目前仅仅容纳了两个EventDriven活动,但添加更多的EventDriven活动也很容易。你需要简单地拖拽多达三个的EventDriven活动进Listen活动中。为什么要添加三个而不是正好的两个呢?因为第五个EventDriven活动要包含一个行为像是定时器的Delay活动,当延时过期后,Listen活动会结束该工作流线程。然后While活动对执行条件进行检测判断,而返回的这个条件总被设置为true,于是使While活动不停地循环。在股票价值被更新并发送给宿主后,Listen活动又对新一轮来自

5、宿主的事件进行监听。16.在最右边的EventDriven活动中,拖拽并放入一个Delay活动,在属性面板中把它命名为updateDelay。17.接下来从eBrokerFlow中拖拽一个SellStock活动到工作流视图设计器界面上,把它放到从右边数起的第二个EventDriven活动中。18.在Visual Studio的属性面板中选择NumberOfShares属性,点击浏览(.)按钮,这会又一次打开一个“将NumberOfShares绑定到活动的属性”的对话框。点击绑定到新成员选项卡,然后再点击创建字段,并在新成员名称中输入_sharesToSell,最后点击确定。Visual Stu

6、dio就添加了这个_sharesToSell字段。我在这里选择创建_sharesToSell依赖属性而不是字段是因为字段从来不会被Workflow1类的外部访问到。它提供的基于XML格式的市场价值信息要传给宿主,因此应当把外部访问权限暴露出来。19.Symbol属性也必须进行绑定。下面的步骤和上一步骤是一样的,只是字段名称要命名为_tickerToSell。20.为了卖出股票,要拖拽一个Code活动放到SellStock事件处理程序的下面。在它的ExecuteCode属性中输入SellStock,在插入了对应的事件处理程序后请回到工作流视图设计器界面上来。21.我们现在要对买股票的逻辑进行添加

7、。拖拽一个BuyStock事件处理活动(也来自于eBrokerFlow)到设计器界面上,把它放到正中间的EventDriven活动中。22.使用第18步的步骤,把BuyStock活动的NumberOfShares属性绑定到一个新的字段,名称为_sharesToBuy。同样,使用第19步的步骤,把它的Symbol属性也绑定到一个新的字段,名称为_tickerToBuy。23.和你需要一个Code活动去卖股票一样,你也需要一个Code活动去买股票。重复第12步添加一个新的Code活动,设置它的ExecuteCode属性为BuyStock。24.重复第17步至第20步两次,把RemoveTicker

8、和AddTicker事件也添加到Listen活动中。RemoveTicker活动的TickerXML属性要绑定到一个新的名称为_tickerToRemove的字段,而为该RemoveTicker事件添加的Code活动的ExecuteCode属性指定为RemoveTicker。同样地,AddTicker活动的TickerXML属性要绑定到_tickerToAdd,和它相联系的Code活动的ExecuteCode属性指定为AddTicker。完成这些后,Listen活动的外观如下所示:25.编译你的这个工作流,纠正任何出现的编译错误。26.在Visual Studio中打开Workflow1.cs

9、的源文件准备进行编辑。27.Visual Studio为你添加了大量的代码,因此你首先定位到Workflow1的构造器并在该构造器下添加如下的代码。你插入的这些代码可被认为是初始化代码。当工作流启动时,你将把一个数据字典传给该工作流,这个数据字典包含有以股票代码(如“CONT”)作为关键字的要监视的若干股票信息的集合。你也需要指定一个轮询间隔,它是再一次对股票市值进行检测前工作流所要等待的时间值。private Dictionary _items =new Dictionary();private string _tickersXML = null;public string TickersX

10、MLget return _tickersXML; set _tickersXML = value;private TimeSpan _interval = TimeSpan.FromSeconds(7);public TimeSpan PollIntervalget return _interval;set _interval = value;28.下面定位到你在步骤2中为你的第一个Code活动添加的Initialize事件处理程序。插入下面的代码:Initialize/ Establish the market update timeoutupdateDelay.TimeoutDurati

11、on = PollInterval;/ Stuff the known ticker values into the dictionary/ for later recall when updating market conditions.eBrokerService.Tickers tickers = null;using (StringReader rdr = new StringReader(TickersXML)XmlSerializer serializer =new XmlSerializer(typeof(eBrokerService.Tickers);tickers = (eB

12、rokerService.Tickers)serializer.Deserialize(rdr);foreach (eBrokerService.Ticker ticker in tickers.Items)/ Add the ticker to the dictionary_items.Add(ticker.Symbol, ticker);提示:为了方便,我在这个初始化方法中对该Delay活动的TimeoutDuration进行了指定。但是不要忘了,你也能使用Delay活动的InitializeTimeoutDuration方法来做同样的工作。29.找到TestContinue事件处理程序,

13、While活动使用它来对是否继续进行循环进行判断。插入下面的代码让While活动不停循环(不用担心.实际上它最终会停止循环的!):/ Continue forevere.Result = true;30.下面要插入的代码块很长,它使用了蒙特卡罗模拟来对股票市场价进行更新。找到和名称为updateMarket的Code活动(参见第10步)相对应的UpdateMarketValues事件处理程序,插入下面的代码:UpdateMarketValues/ Iterate over each item in the dictionary and decide/ what its current valu

14、e should be. Normally wed call/ some external service with each of our watch values,/ but for demo purposes well just use random values.Random rand = new Random(DateTime.Now.Millisecond);eBrokerService.UpdateCollection updates = new eBrokerService.UpdateCollection();foreach (string key in _items.Key

15、s)/ Locate the itemeBrokerService.Ticker item = _itemskey;/ If were starting out, we have no current value,/ so place the value at half the distance between the/ buy and sell triggers.if (item.LastPrice / Add delta to buy trigger valueitem.LastPrice = item.BuyTrigger + delta; / ifelse/ Reverse it an

16、d add to the sell trigger/ valueitem.LastPrice = item.SellTrigger + delta; / else / if/ Set up the simulationdecimal newPrice = item.LastPrice;decimal onePercent = item.LastPrice * 0.1m;Int32 multiplier = 0; / no change/ Well now roll some dice. First roll: does the/ market value change? 0-79, no. 8

17、0-99, yes.if (rand.Next(0, 99) = 80)/ Yes, update the price. Next roll: will the/ value increase or decrease? 0-49, increase./ 50-99, decreasemultiplier = 1;if (rand.Next(0, 99) = 50)/ Decrease the price.multiplier = -1;/ Next roll, by how much? Well calculate it/ as a percentage of the current shar

18、e value./ 0-74, .1% change. 75-89, .2% change. 90-97,/ .3% change. And 98-99, .4% change.Int32 roll = rand.Next(0, 99);if (roll 75)/ 1% changenewPrice = item.LastPrice + (onePercent * multiplier * 0.1m);else if (roll 0 ? Up : (multiplier = 0 ?FirmDown);update.Action = newPrice item.SellTrigger ?Sell

19、 (newPrice = 0 ?item.NumberOfShares - _sharesToSell : 0;catch/ Do nothingwe just wont have sold any.32.找到BuyStock事件处理程序,添加下面的代码:BuyStock/ Increase the number of shares for the given ticker./ Find this ticker.eBrokerService.Ticker item = _items_tickerToBuy;if (item !/ Increase the number of shares.item.NumberOfShares += _sharesToBuy;/ Do nothingwe just wont have purchased any.33.接下来是RemoveTicker,找到它并插入下面的代码:RemoveTicker/ Remove the given ticker from the watch./ DeserializeeBrokerService.Ticker ticker = null;using (StringReade

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1