金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 先生

帮忙编写下

[复制链接]

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2022-5-24 20:49 | 显示全部楼层
技术008 发表于 2022-5-24 18:10
多头止盈:cross(ma13,ma8) and c

是啊我的系统是可以盈利的,想更规避情绪的影响用自动交易来解决。但是自己不会编写代码不知道从哪里开始一步步学。
其实你帮我写的这个框架是对的,只有2点需要调整的地方
1.是 100日均线趋势由空拐头变多趋势过程中出现的正常ema均线是可以认为还是空的 不需要平仓 直到完全确定是多头止损或者止盈。 由多转空也是这样。
2.是止盈问题,刚你给的代码只能触发第一种情况,多头趋势中回调到100日均线价格开仓做多时8日均线下穿13日均线已是死叉状态,则第二次8日均线下穿13日均线死叉时止盈。【100日均线趋势没有变化的情况】 。第二种情况开仓做多时8日均线上穿13日均线已是金叉状态,则8日均线下穿13日均线死叉止盈。无法触发止盈。
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-5-24 22:31 | 显示全部楼层
多头止盈:cross(ma13,ma8) and c<ma100 and cross(ma13,ma8) and ref(ma8<ma13,enterbars);

那就这样试下,哈市建议用户自己努力学习吧
否者这样你说一句,工作人员这边试一句话,然后你在看
效率太慢而且严重消耗这边时间的会,有些东西你知道事啥但是表述出来别人不一定能够看的很懂的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2022-5-25 13:25 | 显示全部楼层
技术008 发表于 2022-5-24 18:10
多头止盈:cross(ma13,ma8) and c

帮我看行这个代码是不是被我哪里改错了  有设置趋势里只开仓两次 但是图表走的时候都不止两次 有时候都7 8次开仓

VARIABLE:KD_FALG=0,KK_FALG=0;
  
EMA100:EMA(C,100);
  
//成立时为多头趋势否者为空头趋势
KTXS:EMA100>REF(EMA100,1) AND REF(EMA100,1)>REF(EMA100,2);
IF(EMA100>=REF(EMA100,1),EMA100,DRAWNULL),LINETHICK2,COLORRED;//多头红色
IF(EMA100<=REF(EMA100,1),EMA100,DRAWNULL),LINETHICK1,COLORGREEN;//空头绿色
  
KD_COND:KTXS=1 and ref(KTXS=1,1) and ref(low>EMA100,1) and low<EMA100;//开多条件
KK_COND:KTXS=0 and ref(KTXS=0,1)  and ref(high<EMA100,1) and high>EMA100;//开空条件

duomaxProfit:=HHV(H,ENTERBARS+1)-AVGENTERPRICE;
kongmaxProfit:=AVGENTERPRICE-LLV(L,ENTERBARS+1);
  
if duomaxProfit=1 and HOLDING>0 then begin      
        多头止盈:SELL(1,HOLDING,MARKET);
        KD_FALG:=KD_FALG+1;//记录多头平仓次数,              
END
  
if kongmaxProfit=1 and HOLDING<0 then begin
        空头止盈:SELLSHORT(HOLDING<0,HOLDING,MARKET);
        KK_FALG:=KK_FALG+1;//记录空头平仓次数     
END
  
  
if duomaxProfit>=10*MINDIFF and (HHV(H,ENTERBARS+1)-c)>=5*MINDIFF then 多移动:SELL(1,holding,MARKET);
if kongmaxProfit>=10*MINDIFF and (c-LLV(L,ENTERBARS+1))>=5*MINDIFF then 空移动:SELLSHORT(1,holding,MARKET);
  
  

  
if KD_COND=1  then begin
        BUY(HOLDING=0 AND  KD_FALG<2,1,MARKET);
        KK_FALG:=0;//在多头趋势下,将空头的平仓标志置0
END
  
if KK_COND=1  then begin
        BUYSHORT(HOLDING=0 AND  KK_FALG<2,1,MARKET);
        KD_FALG:=0;
END

if KTXS=0 then   begin
    SELL(HOLDING>0,HOLDING,MARKET); //当多头趋势转换为空头趋势时,平多头仓位
    KD_FALG:=0;
end
if KTXS=1 then   begin
     SELLSHORT(HOLDING<0,HOLDING,MARKET);//当空头趋势转换为多头趋势时,平空头仓位
     KK_FALG:=0;   

end
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-5-25 14:52 | 显示全部楼层
本帖最后由 技术009 于 2022-5-25 14:53 编辑

所有的平仓的地方 你都要重置全局变量的。你多了止损语句。但是止损地方又没有增加平仓的次数。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2022-5-25 16:38 | 显示全部楼层
技术009 发表于 2022-5-25 14:52
所有的平仓的地方 你都要重置全局变量的。你多了止损语句。但是止损地方又没有增加平仓的次数。

能帮我修改好下吗 。搞了半天都乱套了对代码不够熟悉
回复

使用道具 举报

37

主题

9943

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-5-25 18:48 | 显示全部楼层
[PEL] 复制代码
duomaxProfit:=HHV(H,ENTERBARS+1)-AVGENTERPRICE;
kongmaxProfit:=AVGENTERPRICE-LLV(L,ENTERBARS+1);

//duomaxProfit不是条件结果(条件判断结果不是0就是1)!!!   你判断最大浮盈等于1,基本不会成立,你这么做的目的是什么?
if duomaxProfit=1 and HOLDING>0 then begin      
        多头止盈:SELL(1,HOLDING,MARKET);
        KD_FALG:=KD_FALG+1;//记录多头平仓次数,              
END
 //同理
if kongmaxProfit=1 and HOLDING<0 then begin
        空头止盈:SELLSHORT(HOLDING<0,HOLDING,MARKET);
        KK_FALG:=KK_FALG+1;//记录空头平仓次数     
END
  
 //移动止盈,平仓后平仓次数没有计数,自然控制不了。
//if duomaxProfit>=10*MINDIFF and (HHV(H,ENTERBARS+1)-c)>=5*MINDIFF then 多移动:SELL(1,holding,MARKET);
//if kongmaxProfit>=10*MINDIFF and (c-LLV(L,ENTERBARS+1))>=5*MINDIFF then 空移动:SELLSHORT(1,holding,MARKET);
//变更如下
if duomaxProfit>=10*MINDIFF and (HHV(H,ENTERBARS+1)-c)>=5*MINDIFF then  begin  
	多移动:SELL(1,holding,MARKET);
	KD_FALG:=KD_FALG+1;//记录多头平仓次数,
end
if kongmaxProfit>=10*MINDIFF and (c-LLV(L,ENTERBARS+1))>=5*MINDIFF then  begin  
	空移动:SELLSHORT(1,holding,MARKET);
	KK_FALG:=KK_FALG+1;//记录空头平仓次数   
end

  


建议你首先理清范例代码的结构逻辑,然后再对齐进行修改。理清代码逻辑的过程是对自己交易思想的验证消化。能快速提高编写和分析能力。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-29 08:39 , Processed in 0.136749 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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