- 精华
- 0
- 在线时间
- 16 小时
- UID
- 231728
- 积分
- 38
- 帖子
- 23
- 阅读权限
- 10
- 注册时间
- 2016-4-7
- 最后登录
- 2018-12-2
- 精华
- 0
- UID
- 231728
- 积分
- 38
- 帖子
- 23
- 主题
- 7
- 阅读权限
- 10
- 注册时间
- 2016-4-7
- 最后登录
- 2018-12-2
|
先上代码:- Params
- Numeric D1(5);
- Numeric StopLoss(8);
- Numeric PTPOINT(10);
- Vars
- NumericSeries KDALLOW;
- NumericSeries PDALLOW;
- Numeric KD1(0);
- Numeric KD2(0);
- Numeric PD1(0);
- Numeric PD2(0);
- Numeric STPRICE;
- Numeric PTPRICE;
- Numeric PTSTPRICE;
- Bool TRADE1;
- Bool TRADE2;
- Begin
- If(Time>=0.2105 AND Time<=0.2320) TRADE1=True;
- If(Time>=0.0905 AND Time<=0.1450) TRADE1=True;
- If(TRADE1 OR TRADE2)
- {
- If(Time<>Time[1])
- {
- SetGlobalVar(10,0);
- }
- KDALLOW=GetGlobalVar(2);
- PDALLOW=GetGlobalVar(3);
- If(High>Highest(High[1],D1)) KD1=1;
- If(Low>=Lowest(Low[1],D1)) KD2=1;
- If(Low<lowest(Low[1],D1)) PD1=1;
- If(High<=Highest(High[1],D1)) PD2=1;
- Commentary("KD1:"+Text(KD1));
- Commentary("KD2:"+Text(KD2));
- Commentary("PD1:"+Text(PD1));
- Commentary("PD2:"+Text(PD2));
- Commentary(IIFString(High>Highest(High[1],D1),"True","False"));
- Commentary("持仓1:"+Text(A_BuyPosition));
- If(A_BuyPosition==0 AND GetGlobalVar(0)==0)
- {
- If(KD1>0 AND KD2>0)
- {
- KDALLOW=1;
- SetGlobalVar(2,KDALLOW);
- }
- If(KDALLOW[1]==1 And GetGlobalVar(10)==0)
- {
- SetGlobalVar(1,Q_AskPrice);
- KDALLOW=0;
- SetGlobalVar(2,KDALLOW);
- A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
- SetGlobalVar(0,1);
- SetGlobalVar(10,1);
- }
- }
- Commentary("持仓2:"+Text(A_BuyPosition));
- Commentary("开仓价:"+Text(GetGlobalVar(1)));//以上为开仓
- Commentary("平推许可:"+Text(GetGlobalVar(4)));
- If(A_BuyPosition==1 AND GetGlobalVar(0)==1)
- {
- PTPRICE=GetGlobalVar(1)+PTPOINT*MinMove*PriceScale;
- Commentary("平推价:"+Text(PTPRICE));
- If(Close>PTPRICE)
- {
- SetGlobalVar(4,1);
- }
- Commentary("平推许可:"+Text(GetGlobalVar(4)));
- If(GetGlobalVar(4)==0)
- {
- STPRICE=GetGlobalVar(1)-StopLoss*MinMove*PriceScale;
- Commentary("止损价:"+Text(STPRICE));
- If(Close<STPRICE)
- {
- PDALLOW=0;
- SetGlobalVar(3,PDALLOW);
- SetGlobalVar(1,0);
- Commentary("止损平仓:"+Text(Q_BidPrice));
- SetGlobalVar(4,0);
- A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
- SetGlobalVar(0,0);
- }
- Else
- {
- If(PD1>0 AND PD2>0)
- {
- PDALLOW=1;
- SetGlobalVar(3,PDALLOW);
- }
- If(PDALLOW[1]==1)
- {
- PDALLOW=0;
- SetGlobalVar(3,PDALLOW);
- SetGlobalVar(1,0);
- Commentary("策略平仓:"+Text(Q_BidPrice));
- SetGlobalVar(4,0);
- A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
- SetGlobalVar(0,0);
- }
- }
- }
- Else
- {
- PTSTPRICE=GetGlobalVar(1)+2*MinMove*PriceScale;
- Commentary("平推止损价:"+Text(PTSTPRICE));
- If(Close<PTSTPRICE)
- {
- SetGlobalVar(1,0);
- Commentary("平推平仓:"+Text(Q_BidPrice));
- SetGlobalVar(4,0);
- A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
- SetGlobalVar(0,0);
- PDALLOW=0;
- SetGlobalVar(3,PDALLOW);
- }
- Else
- {
- If(PD1>0 AND PD2>0)
- {
- PDALLOW=1;
- SetGlobalVar(3,PDALLOW);
- }
- If(PDALLOW[1]==1)
- {
- PDALLOW=0;
- SetGlobalVar(3,PDALLOW);
- SetGlobalVar(1,0);
- Commentary("策略平仓:"+Text(Q_BidPrice));
- SetGlobalVar(4,0);
- A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
- SetGlobalVar(0,0);
- }
- }
- }
- }
- Commentary("KDALLOW:"+Text(KDALLOW));
- Commentary("PDALLOW:"+Text(PDALLOW));
- Commentary("持仓3:"+Text(A_BuyPosition));
- }
- Else
- {
- If(A_BuyPosition==1)
- {
- A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
- }
- SetGlobalVar(0,0);
- SetGlobalVar(1,0);
- SetGlobalVar(2,0);
- SetGlobalVar(3,0);
- SetGlobalVar(4,0);
- SetGlobalVar(10,0);
- Commentary("非允许交易时间!");
- }
- Commentary("全局变量0:"+Text(GetGlobalVar(0)));
- Commentary("全局变量1:"+Text(GetGlobalVar(1)));
- Commentary("全局变量2:"+Text(GetGlobalVar(2)));
- Commentary("全局变量3:"+Text(GetGlobalVar(3)));
- Commentary("全局变量4:"+Text(GetGlobalVar(4)));
- Commentary("全局变量10:"+Text(GetGlobalVar(10)));
- End
复制代码 这段代码用在白糖1901合约5分钟K上,11月27日9:05的数据是这样的,请看红色圈起来的地方,KD1是1,KD2是1,不想看代码可以只看30-38行。当根K最高点大于前五根K最高点,KD1=1;当根K 最低点不小于前五根K最低点,KD2=1。然而,这跟K的最高点并没有高于前五根K的最高点,KD1被赋值1。请看图:
然而,若是begin-end部分只保留30-38行(Params和Vars部分保留相应参数或都保留),将得到以下这张图,这张图是符合逻辑的
第二张图是对的
经过我的试验,发现是最前面限制交易时间的IF语句在作怪,把日内交易的时间限制取消后,恢复正常。
偶滴神呐~~这让我怎么放心呀
请老师们帮我解答一下吧,这个可怎么是好啊
我觉得我跟IF语句肯定有些误会!!!
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|