金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4086|回复: 11

请老师帮忙看一下,编的对不对

[复制链接]

5

主题

22

帖子

32

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2021-12-1 16:01 | 显示全部楼层 |阅读模式

//这是原本的交易策略



BuyPK:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
SellPK:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
BuyP:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
SellP:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);

//入场
if BuyPK then begin
sellshort(holding<0,0,market);  //买平
买平开:Buy(holding=0,手数,market); //买开
end

if SellPK then begin
sell(holding>0,0,market);  //卖平
卖平开:buyShort(holding=0,手数,MARKET);//卖开
end

//出场
if SellP then begin
卖平:SELL(1,0,MARKET);
end

if  buyP then begin
买平:SELLSHORT(1,0,market);   
end








//我添加的交易系统    不知道是对是错      作为判断使用

{
//交易条件

开多条件:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
开空条件:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
平空条件:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
平多条件:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);


手数:=ss;

//交易系统

if 平空条件 then BEGIN
        平空:SELLSHORT(HOLDING<0,0,MARKET);
end

if 平多条件 then BEGIN
        平多:SELL(HOLDING>0,0,MARKET);
end

if 开多条件 then BEGIN
        开多:buy(HOLDING=0,手数,MARKET);
end

if 开空条件 then BEGIN
        开空:BUYSHORT(HOLDING=0,手数,MARKET);
end

}


老师帮忙看一下,这样盖逻辑对不对,感觉好像哪里有点不对是的

回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-1 16:07 | 显示全部楼层
你原先是一个反手操作的啊。你改完后 反手你去掉了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

22

帖子

32

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-2 10:14 | 显示全部楼层
那老师帮我改一下,可以吗?我主要是学习用,你帮我改一下,我就学会了,谢谢老了


补充内容 (2021-12-2 10:15):
主要是我要弄明白原理,那样以后就不麻烦老师了,而且我也就学会了,再次感谢

补充内容 (2021-12-2 10:16):
帮我改成一套完整的版本,
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-2 10:16 | 显示全部楼层
就这里加回来就行了啊

if 开多条件 then BEGIN
           sellshort(holding<0,0,market);  //买平
        开多:buy(HOLDING=0,手数,MARKET);
end

if 开空条件 then BEGIN
            sell(holding>0,0,market);  //卖平
        开空:BUYSHORT(HOLDING=0,手数,MARKET);
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

22

帖子

32

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-2 10:19 | 显示全部楼层
好的
谢谢老师了
回复

使用道具 举报

5

主题

22

帖子

32

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-2 11:12 | 显示全部楼层
//交易条件

开多条件:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
开空条件:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
平空条件:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
平多条件:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);


手数:=ss;

//交易系统

if 开多条件 then begin
        平空:sellshort(holding<0,0,MARKET);
        开多:buy(holding=0,手数,MARKET);
end


if 开空条件 then BEGIN
        平多:sell(holding>0,0,MARKET);
        开空:buyshort(holding=0,手数,MARKET);
end


if 平空条件 then begin
        sellshort(holding<0,0,market);
END


if 平多条件 then begin
        sell(holding>0,0,MARKET);
end


老师,我更改以后,图表上没有开平仓信号了,是怎么回事,这是我根据你的提示更改的,

补充内容 (2021-12-2 11:13):
先平后开的原则
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-2 11:14 | 显示全部楼层
你完整代码贴下啊。 你不给全了  我也不知道怎么回事。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

22

帖子

32

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-2 11:15 | 显示全部楼层
//定义参数
input:ss(1,1,100,1),sloss(2,1,10,1),M(2,1,10,1),N(300,1,300,1),NC(50,1,100,1);


//中间变量

VJQ:=EMA(V*(C-REF(C,NC)),N);//定义成交量加权指数为VJQ
B:=VJQ>0;//定义多头势
S:=VJQ<0;//定义空头势
{

//交易条件

手数:=ss;

BuyPK:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
SellPK:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
BuyP:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
SellP:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);

//入场
if BuyPK then begin
sellshort(holding<0,0,market);  //买平
买平开:Buy(holding=0,手数,market); //买开
end

if SellPK then begin
sell(holding>0,0,market);  //卖平
卖平开:buyShort(holding=0,手数,MARKET);//卖开
end

//出场
if SellP then begin
卖平:SELL(1,0,MARKET);
end

if  buyP then begin
买平:SELLSHORT(1,0,market);   
end

}






//我添加的交易系统    不知道是对是错      作为判断使用


//交易条件

开多条件:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
开空条件:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
平空条件:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
平多条件:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);


手数:=ss;

//交易系统

if 开多条件 then begin
        平空:sellshort(holding<0,0,MARKET);
        开多:buy(holding=0,手数,MARKET);
end


if 开空条件 then BEGIN
        平多:sell(holding>0,0,MARKET);
        开空:buyshort(holding=0,手数,MARKET);
end


if 平空条件 then begin
        sellshort(holding<0,0,market);
END


if 平多条件 then begin
        sell(holding>0,0,MARKET);
end










//止损
if holding>0 and C<ENTERPRICE*(1-SLoss*0.01) then begin
多单止损:sellshort(1,0,market);  //多单卖平止损
end
if holding<0 and C>ENTERPRICE*(1+SLoss*0.01)then BEGIN
空单止损:sell(1,0,market);  //多单卖平止损
end


补充内容 (2021-12-2 11:16):
上面的是原版,   下面部分是我的更改
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-2 11:18 | 显示全部楼层
你数据量够吗? 你N默认是300.这导致你至少300个K以上才可能有信号。

截图202112021118294976.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

22

帖子

32

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-2 11:23 | 显示全部楼层
这是原版本的交易条件


BuyPK:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
SellPK:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
BuyP:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
SellP:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);




这是我更改的交易条件


开多条件:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
开空条件:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
平空条件:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
平多条件:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);


主要是迷到这里了


补充内容 (2021-12-2 11:27):
你看我更改的对吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 13:39 , Processed in 0.270658 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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