金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4848|回复: 12

帮帮忙 自己真的搞不定 希望技术帮忙写下完整代码 不胜感激

[复制链接]

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
发表于 2021-11-12 17:13 | 显示全部楼层 |阅读模式
本帖最后由 技术010 于 2021-11-12 17:35 编辑

macd参数设置:S(短期)=5  P(长期)=10  M 天数=5 均线设置:5日线  10日线
做多信号:macd出现红柱,DIFF上穿0轴时,开仓买多。止损:达到浮亏5%平仓,未达到5%出现做空信号DIFF下穿0轴时平仓做空   止盈:5日均线下穿10日均线
做空信号:出现绿柱,DIFF下穿0轴时,开仓买空。止损:达到浮亏5%平仓,未达到5%出现做多信号DIFF上穿0轴时平仓做多 止盈:5日均线上穿10日均线
谁能帮我编写下 自己写了老半天都不行 ,例子:当做空时均线没有交叉的时候不会平仓 即使出现了做多信号,系统不会按macd设置的那样DIFF上穿0轴时平空仓做多  希望帮我写个完整的代码 谢谢了 我自己弄得乱七八糟的也不行。

QQ截图20211112165857.jpg
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2021-11-12 17:34 | 显示全部楼层
参考如下范例:
[PEL] 复制代码
INPUT:S(5,1,100,1),P(10,1,100,1),M(5,1,100,1);

DIFF:EMA(CLOSE,S) - EMA(CLOSE,P);
DEA:EMA(DIFF,M);
MACD:2*(DIFF-DEA);

MA5:MA(C,5);
MA10:MA(C,10);

CONPKKD:=MACD>0 AND CROSS(DIFF,0);   //平空开多
CONPDKK:=MACD<0 AND CROSS(0,DIFF);   //平多开空

DTZS:=HOLDING>0 AND (AVGENTERPRICE-C)/AVGENTERPRICE>0.05;  //多头止损条件
KTZS:=HOLDING<0 AND (C-AVGENTERPRICE)/AVGENTERPRICE>0.05;  //空头止损条件

DTZY:=HOLDING>0 AND CROSS(MA10,MA5);     //多头止盈条件
KTZY:=HOLDING<0 AND CROSS(MA5,MA10);     //空头止盈条件

IF DTZS OR KTZS THEN BEGIN
   多头止损:SELL(HOLDING>0,HOLDING,MARKET);
   空头止损:SELLSHORT(HOLDING<0,HOLDING,MARKET);
   END
   
IF DTZY OR KTZY THEN BEGIN 
   多头止盈:SELL(HOLDING>0,HOLDING,MARKET);
   空头止盈:SELLSHORT(HOLDING<0,HOLDING,MARKET);
   END 
   
IF CONPKKD THEN BEGIN 
	SELLSHORT(HOLDING<0,HOLDING,MARKET);
	BUY(HOLDING=0,1,MARKET);
    END
   
IF CONPDKK THEN BEGIN 
	SELL(HOLDING>0,HOLDING,MARKET);
	BUYSHORT(HOLDING=0,1,MARKET);
    END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2021-11-13 20:07 | 显示全部楼层
技术010 发表于 2021-11-12 17:34
参考如下范例:
[mw_shl_code=pel,true]INPUT:S(5,1,100,1),P(10,1,100,1),M(5,1,100,1);

谢谢您 ,能不能在帮我优化下   这样:macd参数设置:S(短期)=5  P(长期)=10  M 天数=5 均线设置:5日线  10日线
做多信号:macd出现红柱,DIFF上穿0轴时,开仓买多。止损:达到浮亏5%平仓,未达到5%出现做空信号DIFF下穿0轴时平仓做空   止盈:5日均线下穿10日均线【若5日均线下穿10日均线止盈后DIFF还在0轴上方运行,且5日均线再次上穿10日均线则继续开仓做多,下穿则止盈 在上穿在开多,】
做空信号:出现绿柱,DIFF下穿0轴时,开仓买空。止损:达到浮亏5%平仓,未达到5%出现做多信号DIFF上穿0轴时平仓做多 止盈:5日均线上穿10日均线 【若5日均线上穿10日均线止盈后DIFF还在0轴下方运行,且5日均线再次下穿10日均线则继续开仓做空,上穿则止盈 在下穿在开空,】
辛苦您了
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-11-15 08:39 | 显示全部楼层
你这段文字描述和一楼的都是一样的。 你最好能自己看懂代码然后尝试自行修改,完整策略编写 通常是不提供直接编写服务的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2021-11-15 09:56 | 显示全部楼层
技术009 发表于 2021-11-15 08:39
你这段文字描述和一楼的都是一样的。 你最好能自己看懂代码然后尝试自行修改,完整策略编写 通常是不提供直 ...

不一样的 ,1楼的只有到止盈。止盈后在0轴上方出现金叉不会开仓的。我现在是想添加止盈后DIFF还在0轴上方运行,且5日均线再次上穿10日均线则继续开仓做多,下穿则止盈 在上穿在开多,     直到下穿0轴做空的。  我知道没有这个服务的  。我刚开始学。这个真搞不来  所以才想让您帮帮忙。
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-11-15 13:39 | 显示全部楼层
1.“且5日均线再次上穿10日均线则继续开仓做多”你这个开多就只:均线上穿+diff大于0  不需要红柱条件了?
2.1的条件是单独作为开仓条件?还是必须止盈后才能触发?

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

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2021-11-15 15:05 | 显示全部楼层
技术009 发表于 2021-11-15 13:39
1.“且5日均线再次上穿10日均线则继续开仓做多”你这个开多就只:均线上穿+diff大于0  不需要红柱条件了?
...

1.均线上穿+diff大于0  需要红柱条件
2.1止盈后才能触发
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-11-15 15:52 | 显示全部楼层
[PEL] 复制代码
input:s(5,1,100,1),p(10,1,100,1),m(5,1,100,1);
 
diff:ema(close,s) - ema(close,p);
dea:ema(diff,m);
macd:2*(diff-dea);
 
ma5:ma(c,5);
ma10:ma(c,10);
 
VARIABLE:mark:=0;

conpkkd:macd>0 and cross(diff,0);   //平空开多
conpdkk:macd<0 and cross(0,diff);   //平多开空
 
dtzs:=holding>0 and (avgenterprice-c)/avgenterprice>0.05;  //多头止损条件
ktzs:=holding<0 and (c-avgenterprice)/avgenterprice>0.05;  //空头止损条件
 
dtzy:=holding>0 and cross(ma10,ma5);     //多头止盈条件
ktzy:=holding<0 and cross(ma5,ma10);     //空头止盈条件
 
if dtzs or ktzs then begin
   多头止损:sell(holding>0,holding,market);
   空头止损:sellshort(holding<0,holding,market);
   end
    
if dtzy or ktzy then begin
   多头止盈:sell(holding>0,holding,market);
   空头止盈:sellshort(holding<0,holding,market);
   mark:=1;
   end
    
if conpkkd then begin
    sellshort(holding<0,holding,market);
    buy(holding=0,1,market);
    mark:=0;
    end
    
if conpdkk then begin
    sell(holding>0,holding,market);
    buyshort(holding=0,1,market);
    mark:=0;
    end
    

    
if type(1)=2 and mark and cross(ma5,ma10) and diff>0 and macd>0 then 止盈后开多:buy(holding=0,1,market);
if type(1)=4 and  mark and cross(ma10,ma5) and diff<0 and macd<0 then 止盈后开空:buyshort(holding=0,1,market);

if type(1)=1 and mark and cross(ma10,ma5) and diff>0 and macd>0 then 止盈后平多:sell(1,holding,market);
if type(1)=3 and  mark and cross(ma5,ma10) and diff<0 and macd<0 then 止盈后平空:sellshort(1,holding,market);


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

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2021-11-15 18:54 | 显示全部楼层
技术009 发表于 2021-11-15 15:52
[mw_shl_code=pel,true]input:s(5,1,100,1),p(10,1,100,1),m(5,1,100,1);

diff:ema(close,s) - ema(clo ...

真的很感谢您,我刚测试了 出现这样的情况 0轴上方出现金叉时 不会提示买多 我截图了1张图跟2张图是不正常的。但是第三张是正常的。应该同样的情况 为什么会出现不一样的买点 在帮我看看 麻烦您了。 1图.jpg 2图.jpg 3图.jpg
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-11-16 10:50 | 显示全部楼层
你要告知下我这个具体的品种,周期。方便我本地测试你 说的情况。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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