股指期货投资策略讨论
摘要
股指期货是以股票指数为买卖对象的一种金融期货,在我国尚属起步发展阶段,本文就针对沪深300指数的股指期货投资策略进行讨论,通过合理的假设,讨论了收益最大化下股指期货投资的投资策略与风险防范问题。
在第一问中,本文首先将问题中给定的股指投资策略进行分析,然后利用MATLAB 软件按照要求规范进行程序编写得到最终收益及收益率。
在第二问中,本文综合分析股指数据特性,提出利用威廉指数对中长期股指趋势进行判断操作,从而获得显著提高的收益率。本文通过MATLAB 软件对股指数据在不同周期下进行威廉指数测算,据此判断超买卖现象以此进行金融操作获取最大利率。
本文围绕题目要求开展,逻辑清晰,操作简明,程序编撰易行有效,在金融投资决策方式上具有很好的借鉴意义。
关键词:股指期货; 威廉指数; 投资策略;MATLAB
1问题的重述
股指期货,就是以股票指数为标的物的期货合约。双方交易的是一定期限后的股票指数价格水平,通过现金结算差价来进行交割。股指期货(Stock Index Futures )的也可称为股价指数期货、期指。
股指期货都有固定的到期日,到期就要摘牌。因此交易股指期货不能象买卖股票一样,交易后就不管了,必须注意合约到期日,以决定是提前了结头寸,还是等待合约到期(好在股指期货是现金结算交割,不需要实际交割股票),或者将头寸转到下一个月。股指期货合约最大的好处可以十分方便地卖空,等价格回落后再买回。当然一旦卖空后价格不跌反涨,投资者会面临损失。
股市指数期货提供了很高风险的机会。其中一个简单的投机策略是利用股市指数期货预测市场走势以获取利润。若预期市场价格回升,投资者便购入期货合约并预期期货合约价格将上升,相对于投资股票,其低交易成本及高杠杆比率使股票指数期货更加吸引投资者。
附件是沪深300指数期货开始交易以来到3月18日的每分钟的数据,包括日期、时间、每分钟的开盘价、最高价、最低价和收盘价。一般来说,投机交易者以趋势交易为主,就是说当预测趋势是上涨时,做多股指期货,等上涨了再了结头寸获利,当预测趋势下跌时,做空股指期货,等跌下来再了结头寸获利,当然如果预测与实际不符,那么将亏损。
1. 最简单的趋势交易就是均线交叉,比如当10分钟均线(某个时刻前十分钟收盘价的平均值)向上穿越20分钟均线且20分钟均线向上穿越40分钟均线,那么做多(买进)股指期货;反之,当10分钟均线向下穿越20分钟均线且20分钟均线向下穿越40分钟均线,那么做空(卖出)股指期货;请以这个策略,每次交易一手来计算附件所给数据这一段时间里的收益率为多少?
2. 请寻找一种策略,应用你所找到的策略对附件中的数据进行计算使得收益率尽量的高。
2
2.1假设与符号合理假设
1. 每次交易只为一手,同时持有也只限一手。
2. 每次交易都能成交,买卖都以收盘价为准。
3. 假设题目所给数据为连续的数据,没有间断。
4. 假设交易费用为合约价值的万分之一。
5. 假设以全额交易,亏损时不需要进行补足。
2.2符号说明
•%R :威廉指数;
•C :当日收盘价;
•L n :n 日内最低价;
•H n :n 日内最高价;
3
3.1模型的建立与求解问题一
根据问题一提供的算法,本文根据假设,作出流程图,如图1,利用MATLAB 将下述
流程通过程序实现。
图1流程图
根据流程,每当10分钟均线向上穿越20分钟均线且20分钟均线向上穿越40分钟均线,那么如果没有持有则做多股指期货,如果持有做多则不变,如持有做空,则先平仓再做多;反之,当10分钟均线向下穿越20分钟均线且20分钟均线向下穿越40分钟均线,那么如果没有持有则做空股指期货,如持有做空则不变,持有做多的话先平仓再做空;第三钟情况即不同时向上或向下穿越时,则认为趋势已变,执行平仓;最后执行次循环,到最后一天时,强制平仓。
因为数据的前40分钟没有40分钟均线,所以本文从第41分钟开始计算,本金以开始介入市场时的价位为标准加上交易费,根据程序(见附录)运行,共执行4714次交易,获利267480点,收益率为18. 51%.
3.2问题二
第一问给出的是基本的均线趋势交易方法,利用的是分钟均线,然而在将近一年的时间内,是属于一个较为长的时间段,利用分钟均线进行交易是一个短时趋势套利的方式,属于短线操作,虽然灵敏度比较高,但是在较长期的时段内不易捕获较长期的趋势,也就不能得到很好的收益,因此,本文提出使用日威廉指数来对趋势进行判断,从而提高中长线操作的收益。
威廉指数又称威廉超买超卖指数,简记为W MS %R 或%R ,它由拉瑞威廉在1973年所著的《我如何赚取百万美元》一书中首先发表,因而以他的名字命名。威廉指数主要用于
研究股价的波动,通过分析股价波动变化中的峰与谷决定买卖时机。它利用震荡点来反映市场的超买超卖现象,可以预测循期内的高点与低点,从而显示出有效的买卖信号,是用来分析市场短期行情走势的技术指示[4]。
威廉指数的设计原理与随机指标有很多相似之处,它也是追踪收盘价在过去一段时间价格区域中相对位置,只不过其考察角度正好和随机指标相反。随机指数是以收盘价和最低比较,而威廉指数则是以收盘价和最高价比较,因而两者计算值的解释意义也正好相反。
威廉指数%R 是利用摆动点来量度股市的超买卖现象,可以预测循环期内的高点或低点,从而提出有效率的投资讯号,其计算公式为
%R =100−(C −L n ) /(H n −L n ) ×100
其中C 为当日收盘价,L n 为n 日内最低价,H n 为n 日内最高价,公式中N 日为选设参数,一般设为14日或20日[5]。
本文利用MATLAB 中金融工具箱willpctr 函数[6],将题目所给数据整合为222天的日数据,输入函数,可以得到这222天的威廉指数%R 。再根据经验[4],进行如下操作:
1. 当%R 的值由−80以上向下破−80时,说明处于超卖状态,有可能见底反弹,应当立即买入并买回做空。
2. 当%R 的值由−20以下向上破−20时,说明处于超买状态,有可能见顶下跌,应当立即做空并卖出合约。
根据上述操作方法,同样根据假设1−5,本文使用MATLAB 进行编程,以此种方法进行操作,得出总的收益及收益率。考虑数据时间范围较长,本文对威廉指数的参数的设置上选择一个较为长的购买周期,取为25,根据程序(见附录)运行结果,并绘制出威廉指数图像如图2,程序显示共执行了48次交易,获利293160点,收益率为
30.31%.
图225日威廉指数
事实上,使用威廉指数来进行操作很重要的一点是参数的设置,根据购买周期的不同,指数反应的灵敏度也会不同,获得的收益也会有所差别,本文尝试了不同的参数配置,经过试验发现,当购买周期为28天时,收益率将接近于最大,此时程序执行48次交易,收益为333600,收益率为34. 50%.
4模型的评价与改进
本文根据问题一的算法,进行合理的假设,以MATLAB 实现,得到了这一方法操作的收益及收益率,在问题二中,为了提高收益,本文又引入了威廉指数来判断趋势,威廉指数是利用震荡点来反映市场的超买超卖现象,可以预测循期内的高点与低点,从而显示出有效的买卖信号,是用来分析市场行情走势的技术指示,通过设定合理的参数,使其能够在中长期股指期货的交易中使用,发挥了其指示特点,使得收益率有了显著的提高。
但是在参数的设置上如果太小会使指数过于敏感,会出现不少错误信号,本文为简化问题提出了一些假设,在实际操作中会更加复杂,而且需要考虑市场的机制和规律,参数的选择需要符合实际,要考虑更多的因素,因此模型还不是很成熟。
本文利用威廉指数的方式是最基本的操作,实际上,当威廉指数由超买区向下滑落表示行情趋势转向,若跌穿−50,表示趋势彻底转弱,也可以卖出,由超卖区向上攀升表示行情趋势转向,若上穿−50,表示趋势彻底转强,可以进行买入,通过增加短线操作从而提高收益。
同时可以设置多条威廉指数曲线,分别以不同的参数,或者配合其它指数如MACD 和RSI 等,通过对比不同曲线的趋势,综合分析走势,应该能得到更好的趋势预测,从而避免错误信号,提高收益。
参考文献
[1]阳明盛,熊西文,林建华,MATLAB 基础及数学软件,大连理工大学出版社,2003.8
[2]卓金武等,MATLAB 在数学建模中的应用,北京航空航天大学出版社,2011.4
[3]雷小平,详解MATLAB 图形绘制技术,2010.9
[4]百度百科,http ://baike.baidu.com/view/61685.htm
[5]http ://blog.sina.com.cn/s/blog4dd 0d 40f 0100dedi.html
[6]李兴绪,崔建福,MATLAB 在金融时间序列分析及建模中的应用[J],计算机工程与科学,2004
[***********][***********][***********][1**********]738附录%program1load s t o c k have =0;buy=0;get =0;count =0;s o l d =0;g i v e =0;for i =1:59856i f st o ck 2(i ,1) >st oc k2(i ,2)&&s to ck 2(i ,2) >s to c k2(i , 3) i f have==0s o l d=st o c k2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; have =2;count=count+1;e l s e i f have==2co nti nue ; e l s e i f have==1s o l d=sto c k 2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;s o l d=st o c k2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; have =2;count=count+1;end e l s e i f st oc k2(i ,1)
[***********][***********][***********][***********]7677get =get +(sold −buy ) ∗300; count=count+1;buy=st oc k 2(i , 5) ; g i v e=gi v e+buy∗300∗0. 0001; count=count+1;have =1;end e l s e i f i ==59856i f have==1s o l d=sto c k 2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;e l s e i f have==2buy=st oc k 2(i , 5) ; g i v e=gi v e+buy∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;end e l s e i f st oc k 2(i ,1) >s to ck 2(i ,2)&&st oc k 2(i ,2) st o c k 2(i , 3) i f have==1s o l d=sto c k 2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;e l s e i f have==2buy=st oc k 2(i , 5) ; g i v e=gi v e+buy∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;end end end r a t e=get /(3383.6∗300+g i v e ) ;
[***********][***********][***********][**************]0%program2load s t o c k w i l l 2=w i l l p c t r (hi , lo , shou , 25) ; have =0;buy=0;get =0;count =0;s o l d =0;g i v e =0;for i =1:222i f w i l l 2(i ) >−20i f have==0s o l d=ka i (i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; have =2;count=count+1;e l s e i f have==2co nti nue ; e l s e i f have==1s o l d=ka i (i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;s o l d=shou(i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; have =2;count=count+1;end e l s e i f w i l l 2(i )
[***********][***********][***********][***********]787980count=count+1;buy=shou(i ) ; g i v e=gi v e+buy∗300∗0. 0001; count=count+1;have =1;end e l s e i f w i l l 2(i ) >−80&&w i l l 2(i ) −20&&w i l l 2(i ) −50i f have==0
i f have==1
[***********][***********][***********][***********]112113buy=ka i (i ) ; g i v e=gi v e+buy∗300∗0. 0001; count=count+1;have =1;e l s e i f have==1contin ue ; e l s e i f have==2buy=ka i (i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(−buy+so l d ) ∗300; count=count+1;buy=shou(i ) ; g i v e=gi v e+buy∗300∗0. 0001; count=count+1;have =1;end e l s e i f i ==222i f have==1s o l d=shou(i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;e l s e i f have==2buy=shou(i ) ; g i v e=gi v e+buy∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;end end end r a t e=get /(3209.2∗300+g i v e ) ;
股指期货投资策略讨论
摘要
股指期货是以股票指数为买卖对象的一种金融期货,在我国尚属起步发展阶段,本文就针对沪深300指数的股指期货投资策略进行讨论,通过合理的假设,讨论了收益最大化下股指期货投资的投资策略与风险防范问题。
在第一问中,本文首先将问题中给定的股指投资策略进行分析,然后利用MATLAB 软件按照要求规范进行程序编写得到最终收益及收益率。
在第二问中,本文综合分析股指数据特性,提出利用威廉指数对中长期股指趋势进行判断操作,从而获得显著提高的收益率。本文通过MATLAB 软件对股指数据在不同周期下进行威廉指数测算,据此判断超买卖现象以此进行金融操作获取最大利率。
本文围绕题目要求开展,逻辑清晰,操作简明,程序编撰易行有效,在金融投资决策方式上具有很好的借鉴意义。
关键词:股指期货; 威廉指数; 投资策略;MATLAB
1问题的重述
股指期货,就是以股票指数为标的物的期货合约。双方交易的是一定期限后的股票指数价格水平,通过现金结算差价来进行交割。股指期货(Stock Index Futures )的也可称为股价指数期货、期指。
股指期货都有固定的到期日,到期就要摘牌。因此交易股指期货不能象买卖股票一样,交易后就不管了,必须注意合约到期日,以决定是提前了结头寸,还是等待合约到期(好在股指期货是现金结算交割,不需要实际交割股票),或者将头寸转到下一个月。股指期货合约最大的好处可以十分方便地卖空,等价格回落后再买回。当然一旦卖空后价格不跌反涨,投资者会面临损失。
股市指数期货提供了很高风险的机会。其中一个简单的投机策略是利用股市指数期货预测市场走势以获取利润。若预期市场价格回升,投资者便购入期货合约并预期期货合约价格将上升,相对于投资股票,其低交易成本及高杠杆比率使股票指数期货更加吸引投资者。
附件是沪深300指数期货开始交易以来到3月18日的每分钟的数据,包括日期、时间、每分钟的开盘价、最高价、最低价和收盘价。一般来说,投机交易者以趋势交易为主,就是说当预测趋势是上涨时,做多股指期货,等上涨了再了结头寸获利,当预测趋势下跌时,做空股指期货,等跌下来再了结头寸获利,当然如果预测与实际不符,那么将亏损。
1. 最简单的趋势交易就是均线交叉,比如当10分钟均线(某个时刻前十分钟收盘价的平均值)向上穿越20分钟均线且20分钟均线向上穿越40分钟均线,那么做多(买进)股指期货;反之,当10分钟均线向下穿越20分钟均线且20分钟均线向下穿越40分钟均线,那么做空(卖出)股指期货;请以这个策略,每次交易一手来计算附件所给数据这一段时间里的收益率为多少?
2. 请寻找一种策略,应用你所找到的策略对附件中的数据进行计算使得收益率尽量的高。
2
2.1假设与符号合理假设
1. 每次交易只为一手,同时持有也只限一手。
2. 每次交易都能成交,买卖都以收盘价为准。
3. 假设题目所给数据为连续的数据,没有间断。
4. 假设交易费用为合约价值的万分之一。
5. 假设以全额交易,亏损时不需要进行补足。
2.2符号说明
•%R :威廉指数;
•C :当日收盘价;
•L n :n 日内最低价;
•H n :n 日内最高价;
3
3.1模型的建立与求解问题一
根据问题一提供的算法,本文根据假设,作出流程图,如图1,利用MATLAB 将下述
流程通过程序实现。
图1流程图
根据流程,每当10分钟均线向上穿越20分钟均线且20分钟均线向上穿越40分钟均线,那么如果没有持有则做多股指期货,如果持有做多则不变,如持有做空,则先平仓再做多;反之,当10分钟均线向下穿越20分钟均线且20分钟均线向下穿越40分钟均线,那么如果没有持有则做空股指期货,如持有做空则不变,持有做多的话先平仓再做空;第三钟情况即不同时向上或向下穿越时,则认为趋势已变,执行平仓;最后执行次循环,到最后一天时,强制平仓。
因为数据的前40分钟没有40分钟均线,所以本文从第41分钟开始计算,本金以开始介入市场时的价位为标准加上交易费,根据程序(见附录)运行,共执行4714次交易,获利267480点,收益率为18. 51%.
3.2问题二
第一问给出的是基本的均线趋势交易方法,利用的是分钟均线,然而在将近一年的时间内,是属于一个较为长的时间段,利用分钟均线进行交易是一个短时趋势套利的方式,属于短线操作,虽然灵敏度比较高,但是在较长期的时段内不易捕获较长期的趋势,也就不能得到很好的收益,因此,本文提出使用日威廉指数来对趋势进行判断,从而提高中长线操作的收益。
威廉指数又称威廉超买超卖指数,简记为W MS %R 或%R ,它由拉瑞威廉在1973年所著的《我如何赚取百万美元》一书中首先发表,因而以他的名字命名。威廉指数主要用于
研究股价的波动,通过分析股价波动变化中的峰与谷决定买卖时机。它利用震荡点来反映市场的超买超卖现象,可以预测循期内的高点与低点,从而显示出有效的买卖信号,是用来分析市场短期行情走势的技术指示[4]。
威廉指数的设计原理与随机指标有很多相似之处,它也是追踪收盘价在过去一段时间价格区域中相对位置,只不过其考察角度正好和随机指标相反。随机指数是以收盘价和最低比较,而威廉指数则是以收盘价和最高价比较,因而两者计算值的解释意义也正好相反。
威廉指数%R 是利用摆动点来量度股市的超买卖现象,可以预测循环期内的高点或低点,从而提出有效率的投资讯号,其计算公式为
%R =100−(C −L n ) /(H n −L n ) ×100
其中C 为当日收盘价,L n 为n 日内最低价,H n 为n 日内最高价,公式中N 日为选设参数,一般设为14日或20日[5]。
本文利用MATLAB 中金融工具箱willpctr 函数[6],将题目所给数据整合为222天的日数据,输入函数,可以得到这222天的威廉指数%R 。再根据经验[4],进行如下操作:
1. 当%R 的值由−80以上向下破−80时,说明处于超卖状态,有可能见底反弹,应当立即买入并买回做空。
2. 当%R 的值由−20以下向上破−20时,说明处于超买状态,有可能见顶下跌,应当立即做空并卖出合约。
根据上述操作方法,同样根据假设1−5,本文使用MATLAB 进行编程,以此种方法进行操作,得出总的收益及收益率。考虑数据时间范围较长,本文对威廉指数的参数的设置上选择一个较为长的购买周期,取为25,根据程序(见附录)运行结果,并绘制出威廉指数图像如图2,程序显示共执行了48次交易,获利293160点,收益率为
30.31%.
图225日威廉指数
事实上,使用威廉指数来进行操作很重要的一点是参数的设置,根据购买周期的不同,指数反应的灵敏度也会不同,获得的收益也会有所差别,本文尝试了不同的参数配置,经过试验发现,当购买周期为28天时,收益率将接近于最大,此时程序执行48次交易,收益为333600,收益率为34. 50%.
4模型的评价与改进
本文根据问题一的算法,进行合理的假设,以MATLAB 实现,得到了这一方法操作的收益及收益率,在问题二中,为了提高收益,本文又引入了威廉指数来判断趋势,威廉指数是利用震荡点来反映市场的超买超卖现象,可以预测循期内的高点与低点,从而显示出有效的买卖信号,是用来分析市场行情走势的技术指示,通过设定合理的参数,使其能够在中长期股指期货的交易中使用,发挥了其指示特点,使得收益率有了显著的提高。
但是在参数的设置上如果太小会使指数过于敏感,会出现不少错误信号,本文为简化问题提出了一些假设,在实际操作中会更加复杂,而且需要考虑市场的机制和规律,参数的选择需要符合实际,要考虑更多的因素,因此模型还不是很成熟。
本文利用威廉指数的方式是最基本的操作,实际上,当威廉指数由超买区向下滑落表示行情趋势转向,若跌穿−50,表示趋势彻底转弱,也可以卖出,由超卖区向上攀升表示行情趋势转向,若上穿−50,表示趋势彻底转强,可以进行买入,通过增加短线操作从而提高收益。
同时可以设置多条威廉指数曲线,分别以不同的参数,或者配合其它指数如MACD 和RSI 等,通过对比不同曲线的趋势,综合分析走势,应该能得到更好的趋势预测,从而避免错误信号,提高收益。
参考文献
[1]阳明盛,熊西文,林建华,MATLAB 基础及数学软件,大连理工大学出版社,2003.8
[2]卓金武等,MATLAB 在数学建模中的应用,北京航空航天大学出版社,2011.4
[3]雷小平,详解MATLAB 图形绘制技术,2010.9
[4]百度百科,http ://baike.baidu.com/view/61685.htm
[5]http ://blog.sina.com.cn/s/blog4dd 0d 40f 0100dedi.html
[6]李兴绪,崔建福,MATLAB 在金融时间序列分析及建模中的应用[J],计算机工程与科学,2004
[***********][***********][***********][1**********]738附录%program1load s t o c k have =0;buy=0;get =0;count =0;s o l d =0;g i v e =0;for i =1:59856i f st o ck 2(i ,1) >st oc k2(i ,2)&&s to ck 2(i ,2) >s to c k2(i , 3) i f have==0s o l d=st o c k2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; have =2;count=count+1;e l s e i f have==2co nti nue ; e l s e i f have==1s o l d=sto c k 2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;s o l d=st o c k2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; have =2;count=count+1;end e l s e i f st oc k2(i ,1)
[***********][***********][***********][***********]7677get =get +(sold −buy ) ∗300; count=count+1;buy=st oc k 2(i , 5) ; g i v e=gi v e+buy∗300∗0. 0001; count=count+1;have =1;end e l s e i f i ==59856i f have==1s o l d=sto c k 2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;e l s e i f have==2buy=st oc k 2(i , 5) ; g i v e=gi v e+buy∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;end e l s e i f st oc k 2(i ,1) >s to ck 2(i ,2)&&st oc k 2(i ,2) st o c k 2(i , 3) i f have==1s o l d=sto c k 2(i , 5) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;e l s e i f have==2buy=st oc k 2(i , 5) ; g i v e=gi v e+buy∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;end end end r a t e=get /(3383.6∗300+g i v e ) ;
[***********][***********][***********][**************]0%program2load s t o c k w i l l 2=w i l l p c t r (hi , lo , shou , 25) ; have =0;buy=0;get =0;count =0;s o l d =0;g i v e =0;for i =1:222i f w i l l 2(i ) >−20i f have==0s o l d=ka i (i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; have =2;count=count+1;e l s e i f have==2co nti nue ; e l s e i f have==1s o l d=ka i (i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;s o l d=shou(i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; have =2;count=count+1;end e l s e i f w i l l 2(i )
[***********][***********][***********][***********]787980count=count+1;buy=shou(i ) ; g i v e=gi v e+buy∗300∗0. 0001; count=count+1;have =1;end e l s e i f w i l l 2(i ) >−80&&w i l l 2(i ) −20&&w i l l 2(i ) −50i f have==0
i f have==1
[***********][***********][***********][***********]112113buy=ka i (i ) ; g i v e=gi v e+buy∗300∗0. 0001; count=count+1;have =1;e l s e i f have==1contin ue ; e l s e i f have==2buy=ka i (i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(−buy+so l d ) ∗300; count=count+1;buy=shou(i ) ; g i v e=gi v e+buy∗300∗0. 0001; count=count+1;have =1;end e l s e i f i ==222i f have==1s o l d=shou(i ) ; g i v e=gi v e+so l d ∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;e l s e i f have==2buy=shou(i ) ; g i v e=gi v e+buy∗300∗0. 0001; get =get +(sold −buy ) ∗300; count=count+1;have =0;end end end r a t e=get /(3209.2∗300+g i v e ) ;