金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2818|回复: 3

大神,请帮我改个程序吧

[复制链接]

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2022-11-23
曾用名:
发表于 2022-11-24 07:38 | 显示全部楼层 |阅读模式
大神,我新编了个策略,可就是不执行,或者执行一次建仓但不平仓。大神能不能帮我写一下啊?
----------------------------------------------------------------------------------------------------------------------------------------------------

input:N1(5,1,200,1),N2(10,1,200,1),N3(20,1,200,1);
MA1:MA(C,N1);
MA2:MA(C,N2);
MA3:MA(C,N3);
AA:=REF(C,1) ;
BB:=REF(C,2) ;
jc:=CROSS(MA1,MA2);
sc:=CROSS(MA2,MA1)
DD:=CALLSTOCK('',vtCLOSE,6,-1);
EE:=CALLSTOCK('',vtCLOSE,6,-2);
FF:="MA.MA1#DAY";
JJ:="MA.MA2#DAY";
KK:="MA.MA3#DAY";
MAJC:="MA.jc#DAY";
MASC:="MA.sc#DAY";
//做多条件:
//1、日线周期上价格在MA3之上,且 MA1MA2金叉 ;
// 2、日线周期上最新价>昨日收盘价   昨日收盘价>前日收盘价;
// 3、任意周期(图表周期)上MA1MA2金叉最新价>1K线收盘价 且 前1K线收盘价>2K线收盘价;
Long:=C>KK AND  MAJC  AND  C>DD  AND  DD>EE  AND  JC  AND  C>AA  AND  AA>BB
if Long then
begin
buy(holding=0,1,C)
end
//多头平仓条件:
//任意周期(图表周期)上最新价<1K线收盘价 且 前1K线收盘价<2K线收盘价;
LongX:=C<AA AND  AA< BB  AND Holding>0;
if LongX then
begin
sell(1,0,Limitr,c);
END
//做空条件:
//1、日线周期上价格在MA3,且 MA1MA2
// 2、日线周期上最新价<昨日收盘价   昨日收盘价<前日收盘价;
// 3、任意周期(图表周期)MA1MA2死叉, 且 最新价<1K线收盘价 且 前1K线收盘价<2K线收盘价;
Short:=C<KK AND  MASC  AND  C<DD  AND  DD<EE  AND  SC   AND  C<AA  AND  AA<BB
if Short then
begin
BUYSHORT(holding=0,1,c) ;
end
//空头平仓条件:
//任意周期(图表周期)上最新价>1K线收盘价 且 前1K线收盘价>2K线收盘价;
ShortX:=C>AA AND  AA> BB  AND Holding>0;
if ShortX then
        begin
        SELLSHORT(1,0,Limitr,c);
        END       

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-11-24 08:58 | 显示全部楼层
1.空头持仓时候 Holding 是小于0 的。你代码里是判断它大于0 。
2.分号缺失;开仓语句参数错误 你代码没编译吗?这些都是基础错误。。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2022-11-23
曾用名:
 楼主| 发表于 2022-11-24 09:43 | 显示全部楼层
不小心把草稿复制过来了,重新编了一下。能执行,交易次数少。有很多信号遗漏的情况,不知道什么原因。代码有没有问题?

input:N1(5,1,200,1),N2(10,1,200,1),N3(20,1,200,1);
MA1:MA(C,N1);
MA2:MA(C,N2);
MA3:MA(C,N3);
AA:=REF(C,1) ;
BB:=REF(C,2) ;
jc:=CROSS(MA1,MA2);
sc:=CROSS(MA2,MA1);
DD:=CALLSTOCK('',vtCLOSE,6,-1);
EE:=CALLSTOCK('',vtCLOSE,6,-2);
FF:="MA.MA1#DAY";
JJ:="MA.MA2#DAY";
KK:="MA.MA3#DAY";
MAJC:="MA.jc#DAY";
MASC:="MA.sc#DAY";
//做多条件:
//1、日线周期上价格在MA3之上,且 MA1、MA2金叉 ;
// 2、日线周期上最新价>昨日收盘价 且  昨日收盘价>前日收盘价;
// 3、任意周期(图表周期)上MA1、MA2金叉 且 最新价>前1根K线收盘价 且 前1K线收盘价>前2根K线收盘价;
Long:=C>KK AND  MAJC  AND  C>DD  AND  DD>EE  AND  JC  AND  C>AA  AND  AA>BB;
if Long then
begin
buy(holding=0,1,THISCLOSE);
end
//多头平仓条件:
//任意周期(图表周期)上最新价<前1根K线收盘价 且 前1根K线收盘价<前2根K线收盘价;
LongX:=C<AA AND  AA< BB  AND Holding>0;
if LongX then
begin
sell(1,0,Limitr,c);
END
//做空条件:
//1、日线周期上价格在MA3之下,且 MA1、MA2死叉 ;
// 2、日线周期上最新价<昨日收盘价 且  昨日收盘价<前日收盘价;
// 3、任意周期(图表周期)上MA1、MA2死叉, 且 最新价<前1根K线收盘价 且 前1根K线收盘价<前2根K线收盘价;
Short:=C<KK AND  MASC  AND  C<DD  AND  DD<EE  AND  SC   AND  C<AA  AND  AA<BB;
if Short then
begin
BUYSHORT(holding=0,1,THISCLOSE) ;
end
//空头平仓条件:
//任意周期(图表周期)上最新价>前1根K线收盘价 且 前1根K线收盘价>前2根K线收盘价;
ShortX:=C>AA AND  AA> BB  AND Holding<0;
if ShortX then
        begin
        SELLSHORT(1,0,Limitr,c);
        END      
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-11-24 10:05 | 显示全部楼层
从文字描述看  你这个条件 很苛刻的吧。

你觉得漏信号的地方 你自己看下各个变量值的情况。排查下 你认为应该满足 但是没满足的变量值 是否存在问题。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 02:34 , Processed in 0.239282 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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