金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3541|回复: 7

止损出来多空效果不一样

[复制链接]

20

主题

57

帖子

57

积分

等级: 免费版

注册:
2021-7-15
曾用名:
发表于 2021-8-25 19:54 | 显示全部楼层 |阅读模式
请帮忙找找错误原因
//多单止损表述: 求开仓那个K线的最低价:
   ( 语句写法是在论坛复制的,因为只有多单,我自己改写的空单,测试图表上面效果就不对了)

A10:=开多条件 ;       //定义开仓条件
A17:=barslast(A10);     //取得开仓到现在的周期数
A18:=LLV(L,A10);        //求得开仓到现在的最低价
A19:=L<A18+MINDIFF*2;   //现价小于开仓后最低价2跳时止损
多单止损价:=A19;
-------------------------------   
                                    //空止损价设置:求开空仓那个K线的最高价
B10:=开空条件 ;         //定义开仓条件
B17:=barslast(B10);     //取得开仓到现在的周期数
B18:=LLV(L,B10);        //求得开仓到现在的最低价
B19:=L>B18-MINDIFF*2;   //大于开仓后最高价2跳止损
空单止损价:=B19;
如图
QQ图片20210825194934.png
========================
请把这里面的问题修改一下
B10:=开空条件 ;      
B17:=barslast(B10);     
B18:=LLV(L,B10);        
B19:=L>B18-MINDIFF*2;  
空单止损价:=B19

回复

使用道具 举报

20

主题

57

帖子

57

积分

等级: 免费版

注册:
2021-7-15
曾用名:
 楼主| 发表于 2021-8-25 20:03 | 显示全部楼层
上面空单复制错了几个代码
自己觉得是这句 测试图表也不对

B10:=开空条件 ;         //定义开仓条件
B17:=barslast(B10);     //取得开仓到现在的周期数
B18:=HHV(H,B10);        //求得开仓到现在的最低价
B19:=H>(B18-MINDIFF*2);   //小于开仓最低价2跳止损
空单止损价:=B19;
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-8-26 08:27 | 显示全部楼层
贴完整能编译通过的代码。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

57

帖子

57

积分

等级: 免费版

注册:
2021-7-15
曾用名:
 楼主| 发表于 2021-8-26 14:26 | 显示全部楼层
INPUT:N1(3,1,100,1);
INPUT:N2(11,1,100,1);
INPUT:N3(66,1,200,1);
INPUT:BL(22,1,100,1);

MA1:=MA(C,N1);
MA2:=MA(C,N2);
MA3:=MA(C,N3);

//布林
MID:MA(C,BL);          //布林
UPPER:=MID + 2*STD(CLOSE,BL); //上轨
LOWER:=MID - 2*STD(CLOSE,BL); //下轨
MID上涨:=MID>REF(MID,1) OR MID>REF(MID,2);
MA3上涨:=MA3>REF(MA3,1) OR MA3>REF(MA3,2);

MID下跌:=MID<REF(MID,1) OR MID<REF(MID,2);///+
MA3下跌:=MA3<REF(MA3,1) OR MA3<REF(MA3,2);///+

突破:=C>UPPER;
开多1:=C>MA2 ;
开多2:=MA2>MID AND MID上涨 AND MA3上涨;
开多条件:= 开多1 AND 开多2 AND 突破;
                   //止损价设置:求开仓那个K线的最低价
A10:=开多条件 ;    //定义开仓条件
A17:=barslast(A10);     //取得开仓到现在的周期数
A18:=LLV(L,A10);        //求得开仓到现在的最低价
A19:=L<A18+MINDIFF*2;   //现价小于开仓以来最低价一跳时,止损
多单止损价:=A19;

                    ///空止损价设置:求开空仓那个K线的最高价
下突破:=C<LOWER; ///+空
开空1:=C<MA2 ;
开空2:=MA2<MID AND MID下跌 AND MA3下跌;
开空条件:= 开空1 AND 开空2 AND 下突破;

B10:=开空条件 ;         //定义开仓条件
B17:=barslast(B10);     //取得开仓到现在的周期数
B18:=HHV(H,B10);        //求得开仓到现在的最低价
B19:=H>B18-MINDIFF*2;   //小于开仓最低价2跳止损
空单止损价:=B19;
   


//平多
平多1:=C<MID;
平多2:=C<多单止损价;             //止损  (可以学习这个表达ENTERPRICE??)
平多3:=C<MA2 AND MA2<MA3;
平多条件:=平多2 OR 平多1 OR 平多3;

//平空
平空1:=C>MID;     
平空2:=C>空单止损价;            
平空3:=C>MA2 AND MA2>MA3;
平空条件:= 平空1 OR 平空3;// OR 平空2 ;

手数:=CEILING((7*(100000))/(C*MULTIPLIER)),LINETHICK0;//多品种测试的最初额手数

//交易系统
平空:SELLSHORT(平空条件, holding,MARKET);
开多:BUY(开多条件 and HOLDING=0 ,手数,MARKET);
平多:SELL(平多条件, holding,MARKET);
开空:BUYSHORT(开空条件  and holding=0 ,手数,MARKET);



{ 请帮忙找找错误原因 //多单止损表述: 求开仓那个K线的最低价:

A10:=开多条件 ;      
A17:=barslast(A10);   
A18:=LLV(L,A10);      
A19:=L<A18+MINDIFF*2;
多单止损价:=A19;
-------------------------------   
//
B10:=开空条件 ;      
B17:=barslast(B10);     
B18:=HHV(H,B10);        
B19:=HH>B18-MINDIFF*2;
空单止损价:=B19
回复

使用道具 举报

20

主题

57

帖子

57

积分

等级: 免费版

注册:
2021-7-15
曾用名:
 楼主| 发表于 2021-8-26 14:33 | 显示全部楼层
前面已经把空单止损取消的.所以看不到问题..吧平空条件加进去{{平空条件:= 平空1 OR 平空3 OR 平空2 ;}
如下全文
INPUT:N1(3,1,100,1);
INPUT:N2(11,1,100,1);
INPUT:N3(66,1,200,1);
INPUT:BL(22,1,100,1);

MA1:=MA(C,N1);
MA2:=MA(C,N2);
MA3:=MA(C,N3);

//布林
MID:MA(C,BL);          //布林
UPPER:=MID + 2*STD(CLOSE,BL); //上轨
LOWER:=MID - 2*STD(CLOSE,BL); //下轨
MID上涨:=MID>REF(MID,1) OR MID>REF(MID,2);
MA3上涨:=MA3>REF(MA3,1) OR MA3>REF(MA3,2);

MID下跌:=MID<REF(MID,1) OR MID<REF(MID,2);///+
MA3下跌:=MA3<REF(MA3,1) OR MA3<REF(MA3,2);///+

突破:=C>UPPER;
开多1:=C>MA2 ;
开多2:=MA2>MID AND MID上涨 AND MA3上涨;
开多条件:= 开多1 AND 开多2 AND 突破;
                   //止损价设置:求开仓那个K线的最低价
A10:=开多条件 ;    //定义开仓条件
A17:=barslast(A10);     //取得开仓到现在的周期数
A18:=LLV(L,A10);        //求得开仓到现在的最低价
A19:=L<A18+MINDIFF*2;   //现价小于开仓以来最低价一跳时,止损
多单止损价:=A19;

                    ///空止损价设置:求开空仓那个K线的最高价
下突破:=C<LOWER; ///+空
开空1:=C<MA2 ;
开空2:=MA2<MID AND MID下跌 AND MA3下跌;
开空条件:= 开空1 AND 开空2 AND 下突破;

B10:=开空条件 ;         //定义开仓条件
B17:=barslast(B10);     //取得开仓到现在的周期数
B18:=HHV(H,B10);        //求得开仓到现在的最低价
B19:=H>B18-MINDIFF*2;   //小于开仓最低价2跳止损
空单止损价:=B19;
   


//平多
平多1:=C<MID;
平多2:=C<多单止损价;             //止损  (可以学习这个表达ENTERPRICE??)
平多3:=C<MA2 AND MA2<MA3;
平多条件:=平多2 OR 平多1 OR 平多3;

//平空
平空1:=C>MID;     
平空2:=C>空单止损价;            
平空3:=C>MA2 AND MA2>MA3;
平空条件:= 平空1 OR 平空3 OR 平空2 ;

手数:=CEILING((7*(100000))/(C*MULTIPLIER)),LINETHICK0;//多品种测试的最初额手数

//交易系统
平空:SELLSHORT(平空条件, holding,MARKET);
开多:BUY(开多条件 and HOLDING=0 ,手数,MARKET);
平多:SELL(平多条件, holding,MARKET);
开空:BUYSHORT(开空条件  and holding=0 ,手数,MARKET);



{ 请帮忙找找错误原因 //多单止损表述: 求开仓那个K线的最低价:

A10:=开多条件 ;      
A17:=barslast(A10);   
A18:=LLV(L,A10);      
A19:=L<A18+MINDIFF*2;
多单止损价:=A19;
-------------------------------   
//
B10:=开空条件 ;      
B17:=barslast(B10);     
B18:=HHV(H,B10);        
B19:=HH>B18-MINDIFF*2;
空单止损价:=B19


}










回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-8-26 14:48 | 显示全部楼层
你这个代码犯了几个很基本的错误。

1.
B10:=开空条件 ;         //定义开仓条件
B17:=barslast(B10);     //取得开仓到现在的周期数
B18:=HHV(H,B10);        //求得开仓到现在的最低价
B19:=H>B18-MINDIFF*2;   //小于开仓最低价2跳止损
空单止损价:=B19;

有没有发现你根本没用到它??

2.
B19:=H>B18-MINDIFF*2;   //小于开仓最低价2跳止损
空单止损价:=B19;

然后你这里 你看看你后面怎么使用这个“空单止损价”的。 这个空单止损价 不是0 就1.因为你这个B19是一个判断的结果。。。它不是一个价格。

所以这个平空永远满足,没有普通期货品种价格都是大于1的吧。
平空2:=C>空单止损价;      
相对的平多哪里则是永远不满足。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

57

帖子

57

积分

等级: 免费版

注册:
2021-7-15
曾用名:
 楼主| 发表于 2021-8-26 15:07 | 显示全部楼层
改了这句 (B18:=HHV(H,B17);  )

但我理解不到 H>B18-MINDIFF*2;  这个上面是判断语句 和1呢
怎么才能写正确呢/

标准答案是什么,我就想表达出开仓那个K线作为止损标准的表达方式哟几种?

你们的网络课程我听过几次,都没有讲这些 ,在哪里去学习函数语句的写作逻辑?


回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-8-26 15:17 | 显示全部楼层
[PEL] 复制代码
INPUT:N1(3,1,100,1);
INPUT:N2(11,1,100,1);
INPUT:N3(66,1,200,1);
INPUT:BL(22,1,100,1);

MA1:=MA(C,N1);
MA2:=MA(C,N2);
MA3:=MA(C,N3);

//布林
MID:MA(C,BL);          //布林
UPPER:=MID + 2*STD(CLOSE,BL); //上轨
LOWER:=MID - 2*STD(CLOSE,BL); //下轨
MID上涨:=MID>REF(MID,1) OR MID>REF(MID,2);
MA3上涨:=MA3>REF(MA3,1) OR MA3>REF(MA3,2);

MID下跌:=MID<REF(MID,1) OR MID<REF(MID,2);///+
MA3下跌:=MA3<REF(MA3,1) OR MA3<REF(MA3,2);///+

突破:=C>UPPER;
开多1:=C>MA2 ;
开多2:=MA2>MID AND MID上涨 AND MA3上涨;
开多条件:= 开多1 AND 开多2 AND 突破;
                   //止损价设置:求开仓那个K线的最低价
A10:=开多条件 ;    //定义开仓条件
A17:barslast(A10);     //取得开仓到现在的周期数 
A18:=LLV(L,A17);        //求得开仓到现在的最低价
A19:=C<A18+MINDIFF*2;   //现价小于开仓以来最低价一跳时,止损


                    ///空止损价设置:求开空仓那个K线的最高价
下突破:=C<LOWER; ///+空
开空1:=C<MA2 ;
开空2:=MA2<MID AND MID下跌 AND MA3下跌;
开空条件:= 开空1 AND 开空2 AND 下突破;

B10:=开空条件 ;         //定义开仓条件
B17:barslast(B10);     //取得开仓到现在的周期数
B18:=HHV(H,B17);        //求得开仓到现在的最低价
B19:=C>B18-MINDIFF*2;   //小于开仓最低价2跳止损

   
//平多
平多1:=C<MID;
平多2:=A19;             //止损  (可以学习这个表达ENTERPRICE??)
平多3:=C<MA2 AND MA2<MA3;
平多条件:=平多2 OR 平多1 OR 平多3;

//平空
平空1:=C>MID;     
平空2:B19;            
平空3:=C>MA2 AND MA2>MA3;
平空条件:= 平空1 OR 平空3 ;

手数:=CEILING((7*(100000))/(C*MULTIPLIER)),LINETHICK0;//多品种测试的最初额手数

//交易系统

//止损的语句单独拎出来,方便你区分到底是谁触发的平仓。
空止损:SELLSHORT(平空2, holding,MARKET);
多止损:SELL(平多2, holding,MARKET);
平空:SELLSHORT(平空条件, holding,MARKET);
开多:BUY(开多条件 and HOLDING=0 ,手数,MARKET);
平多:SELL(平多条件, holding,MARKET);
开空:BUYSHORT(开空条件  and holding=0 ,手数,MARKET);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 20:43 , Processed in 0.241652 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表