交易危机

 找回密码
 快捷注册(禁q号)

QQ登录

只需一步,快速开始

搜索
广告位
楼主: 573
打印 上一主题 下一主题

[指标] 求助:将所有单子设平保的代码怎么写?

[复制链接]

4

主题

3456

积分

0

精华

中级操盘手

金钱
3456 美元
权重
0
21
发表于 2020-4-15 22:49 | 只看该作者
5 老板  能不能帮忙 做个这样的指标  不是EA  谢谢了

1586962083(1).png (26.04 KB, 下载次数: 2)

1586962083(1).png

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
22
 楼主| 发表于 2020-4-15 23:01 | 只看该作者
usdjpy 发表于 2020-4-15 22:49
5 老板  能不能帮忙 做个这样的指标  不是EA  谢谢了

这个容易


订单统计+日期时间.rar (2.1 KB, 下载次数: 3)
太阳每天升起,每天都是新的一天。
回复 支持 1 反对 0

使用道具 举报

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
23
 楼主| 发表于 2020-4-15 23:04 | 只看该作者
usdjpy 发表于 2020-4-15 22:49
5 老板  能不能帮忙 做个这样的指标  不是EA  谢谢了

其实代码很乱,我是东拼西凑修修改改做的,很多代码我都不知道什么意思,不过我测试了能用。


  1. //+------------------------------------------------------------------+
  2. //|                                                      ProjectName |
  3. //|                                      Copyright 2018, CompanyName |
  4. //|                                       http://www.companyname.net |
  5. //+------------------------------------------------------------------+

  6. #property strict
  7. int    FontSize=14;
  8. int    WhichCorner0_3=1;
  9. int        MarketSpread;
  10. int        firsttime=1;
  11. string FontType="微软雅黑";
  12. color  FontColor = Yellow;
  13. double p;
  14. int duokong=0;  
  15. double pip=0.0001,point,digits;
  16. int slip=5;
  17. string hbd ="===";
  18. //+------------------------------------------------------------------+
  19. //|                                                                  |
  20. //+------------------------------------------------------------------+

  21. int init()
  22.   {
  23.   ObjectCreate( "北京时间", OBJ_LABEL, 0,0,0,0,0,0,0);
  24.   ObjectSet( "北京时间", OBJPROP_CORNER, 1);
  25.   ObjectSet( "北京时间", OBJPROP_XDISTANCE, 5);
  26.   ObjectSet( "北京时间", OBJPROP_YDISTANCE, 40);
  27.   ObjectSetText(  "北京时间", "", 18, "微软雅黑", clrAqua);
  28.   ObjectCreate( "日期", OBJ_LABEL, 0,0,0,0,0,0,0);
  29.   ObjectSet( "日期", OBJPROP_CORNER, 1);
  30.   ObjectSet( "日期", OBJPROP_XDISTANCE, 10);
  31.   ObjectSet( "日期", OBJPROP_YDISTANCE, 0);
  32.   ObjectSetText(  "日期", "", 14, "微软雅黑", clrAqua);
  33.     return(0);
  34.   }


  35. int start()
  36.   {

  37.   ObjectSetText("日期", TimeToStr(TimeLocal(), TIME_DATE)+"  星期 "+DayOfWeek(), 17, "微软雅黑", clrAqua );
  38.   ObjectSetText("北京时间", TimeToStr(TimeLocal(), TIME_MINUTES|TIME_SECONDS), 38, "微软雅黑", clrAqua );
  39.    MarketSpread=MarketInfo(Symbol(),MODE_SPREAD);
  40.    

  41.    if (hbd=="===")hbd=Symbol();
  42.      PointInit();
  43.      if(MarketInfo(hbd,MODE_DIGITS)==5){slip=slip*10;p=MarketInfo(Symbol(), MODE_SPREAD)/10;}
  44.      if(MarketInfo(hbd,MODE_DIGITS)==4)p=MarketInfo(Symbol(), MODE_SPREAD);
  45.      
  46.      
  47.     //if (CountTrades(1,hbd,"",0)!=0)
  48.    
  49.    string Market_point2 = "多单:"+DoubleToStr(CountTrades(1,hbd,"",0),2)+" 手,    均价:"+AvgPrice(1,hbd,1);
  50.    
  51.    ObjectCreate("Market_Point2_Label", OBJ_LABEL, 0, 0, 0);
  52.    ObjectSetText("Market_Point2_Label", Market_point2, 14, FontType, clrWhite);
  53.    ObjectSet("Market_Point2_Label", OBJPROP_CORNER, 1);
  54.    ObjectSet("Market_Point2_Label", OBJPROP_XDISTANCE, 10);
  55.    ObjectSet("Market_Point2_Label", OBJPROP_YDISTANCE, 110);
  56.    
  57.    // if(CountTrades(2,hbd,"",1)!=0)
  58.    
  59.       string Market_point1 = "空单:"+DoubleToStr(CountTrades(2,hbd,"",1),2)+" 手,    均价:"+AvgPrice(2,hbd,2);

  60.    ObjectCreate("Market_Point1_Label", OBJ_LABEL, 0, 0, 0);
  61.    ObjectSetText("Market_Point1_Label", Market_point1, 14, FontType, clrWhite);
  62.    ObjectSet("Market_Point1_Label", OBJPROP_CORNER, 1);
  63.    ObjectSet("Market_Point1_Label", OBJPROP_XDISTANCE,10);
  64.    ObjectSet("Market_Point1_Label", OBJPROP_YDISTANCE, 150);
  65.    
  66.    return(0);
  67. }
  68. //+------------------------------------------------------------------+
  69. //|                                                                  |
  70. //+------------------------------------------------------------------+
  71. int deinit()
  72.   {
  73.    switch(UninitializeReason())
  74.      {
  75.       case REASON_CHARTCLOSE:
  76.       case REASON_REMOVE:
  77.       case REASON_RECOMPILE:
  78.          Comment("");
  79.          //ObjectDelete(OBJECT_NAME);
  80.          break;
  81.       case REASON_CHARTCHANGE:   // leave the object the way it is if simply switching timeframes
  82.       case REASON_PARAMETERS:
  83.       case REASON_ACCOUNT:
  84.          break;
  85.      }
  86.      ObjectDelete("北京时间");
  87.      ObjectDelete("日期");
  88.      ObjectDelete("Market_Point3_Label");
  89.      ObjectDelete("Market_Point4_Label");
  90.      ObjectDelete("Market_Point_Label");
  91.      ObjectDelete("Market_Point2_Label");
  92.      ObjectDelete("Market_Point1_Label");
  93.    return(0);
  94.   }
  95. //+------------------------------------------------------------------+

  96. //+-------------------------------订单数量统计--
  97.   double CountTrades(int duokong,string hb,string ordtip,int ordtype)
  98. {
  99.    double count;
  100.    for (int pos = OrdersTotal() - 1; pos >= 0; pos--)
  101.    {
  102.       OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  103.       if (OrderSymbol() == hb  )
  104.       {
  105.          if (duokong == 1)
  106.          {
  107.             if ( OrderType() == ordtype)
  108.             {
  109.                count+=OrderLots();
  110.             }
  111.          }
  112.          
  113.          if (duokong == 2)
  114.          {
  115.             if ( OrderType() == ordtype)
  116.             {
  117.               count+=OrderLots();
  118.             }
  119.          }
  120.       }
  121.    }
  122.    
  123.    return (count);
  124. }  



  125. /////////////////////////////////////////////////////
  126.    void PointInit()
  127.    {
  128.       int digits = MarketInfo(hbd, MODE_DIGITS);
  129.       if (digits >= 2 && digits < 4)
  130.       {
  131.          point = 0.01;
  132.       }
  133.       if (digits >= 4)
  134.       {
  135.          point = 0.0001;
  136.       }
  137.    }
  138.    
  139.    //////////////////////////////////////////
  140. //计算多单或者空单的平均入场价,结果精确到汇率小数点位
  141.   double AvgPrice(int ddz,string hb,int duokong)
  142. {
  143.    double sum = 0;
  144.    double lots = 0;
  145.    
  146.    
  147.    for (int pos = OrdersTotal() - 1; pos >= 0; pos--)
  148.    {
  149.       OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  150.       if (OrderSymbol() == hb )
  151.       {
  152.          if (duokong == 1)
  153.          {
  154.             if (OrderType() == 0)
  155.             {
  156.                sum += OrderOpenPrice() * OrderLots();
  157.                lots += OrderLots();
  158.             }
  159.          }
  160.          
  161.          if (duokong == 2)
  162.          {
  163.             if (OrderType() == 1)
  164.             {
  165.                sum += OrderOpenPrice() * OrderLots();
  166.                lots += OrderLots();
  167.             }
  168.          }
  169.       }
  170.    }
  171.    double ret;
  172.    if (lots!=0)
  173.       ret = NormalizeDouble(sum/lots,5);
  174.    else ret=0;
  175.    
  176.    return (ret);
  177. }  
  178. ///////////////////////////////////////////
复制代码
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
24
 楼主| 发表于 2020-4-15 23:09 | 只看该作者
hpy6666 发表于 2020-4-15 22:46
你这均线取值不对吧!改下指标函数的周期就好了

还没完成呢,现在做不出来,先学习一段时间后再做。
太阳每天升起,每天都是新的一天。

12

主题

2192

积分

2

精华

中级操盘手

金钱
2192 美元
权重
0
25
发表于 2020-4-15 23:17 | 只看该作者
我也来秀一个,MT5的按钮界面; 目前功能都没有, 打算弄个平保和简单织布机!!

QQ截图20200415231546.png (32.97 KB, 下载次数: 3)

QQ截图20200415231546.png

4

主题

3456

积分

0

精华

中级操盘手

金钱
3456 美元
权重
0
26
发表于 2020-4-15 23:56 | 只看该作者

非常感谢 5老板

2128

主题

6万

积分

157

精华

大型投行

金钱
61594 美元
权重
640
27
发表于 2020-4-16 09:51 | 只看该作者
如果单子处于浮盈状态,开仓价=止损;
如果单子处于浮亏状态,开仓价≠止损;改不动此刻。
这条可加进去了?

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
28
 楼主| 发表于 2020-4-16 10:15 | 只看该作者
frlin2003 发表于 2020-4-16 09:51
如果单子处于浮盈状态,开仓价=止损;
如果单子处于浮亏状态,开仓价≠止损;改不动此刻。
这条可加进去 ...

没有加进去
还有止损价与现价的距离,小于这个距离也改不动。
但是我是手动交易,
开第1单后,填 个价格可以一键设止损(如果加一个点数止损的按钮就更方便了,就不用计算价格了)
开第2单的时候,先把第1单,一健平保(此时第1单必须是盈利的,而且大于平台规定的最小止盈距离)
开第3单的时候,先把前面的单子各自平保,可以一键完成,虽然有重复执行,但是没影响。(此时第2单必须是盈利的,而且大于平台规定的最小止盈距离)
依此类推,,,

所以,,不加进去好像也没影响,,主要还是我不会加
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
29
 楼主| 发表于 2020-4-16 10:18 | 只看该作者
hpy6666 发表于 2020-4-15 22:46
你这均线取值不对吧!改下指标函数的周期就好了

均线价格搞定了,很笨的方法,但是能用


  1. int start()

  2. {

  3. if(Period()==240) h4=14;if(Period()==60) h4=56;if(Period()==15) h4=224;if(Period()==5) h4=672;if(Period()==1) h4=3360;
  4. if(Period()==240) h1=0;if(Period()==60) h1=14;if(Period()==15) h1=56;if(Period()==5) h1=168;if(Period()==1) h1=840;
  5. if(Period()==240) m15=0;if(Period()==60) m15=0;if(Period()==15) m15=14;if(Period()==5) m15=42;if(Period()==1) m15=210;
  6. if(Period()==240) m5=0;if(Period()==60) m5=0;if(Period()==15) m5=0;if(Period()==5) m5=14;if(Period()==1) m5=70;
  7. if(Period()==240) m1=0;if(Period()==60) m1=0;if(Period()==15) m1=0;if(Period()==5) m1=0;if(Period()==1) m1=14;

  8. string Market_point10 = "跟踪均线止损        价格       距离  ";

  9.    ObjectCreate("Market_Point10_Label", OBJ_LABEL, 0, 0, 0);
  10.    ObjectSetText("Market_Point10_Label", Market_point10, 14, FontType, clrWhite);
  11.    ObjectSet("Market_Point10_Label", OBJPROP_CORNER, WhichCorner0_3);
  12.    ObjectSet("Market_Point10_Label", OBJPROP_XDISTANCE, 14);
  13.    ObjectSet("Market_Point10_Label", OBJPROP_YDISTANCE, 320);

  14. anniu("h4",clrWhite,305,365,"H 4",50);

  15. string Market_point6 = DoubleToStr(iMA(NULL,0,h4,0,MODE_SMA,PRICE_WEIGHTED,0),Digits);
  16.    ObjectCreate("Market_Point6_Label", OBJ_LABEL, 0, 0, 0);
  17.    ObjectSetText("Market_Point6_Label", Market_point6, 14, FontType, clrWhite);
  18.    ObjectSet("Market_Point6_Label", OBJPROP_CORNER, WhichCorner0_3);
  19.    ObjectSet("Market_Point6_Label", OBJPROP_XDISTANCE, 100);
  20.    ObjectSet("Market_Point6_Label", OBJPROP_YDISTANCE, 365);
  21.    
  22.          anniu("h1",clrWhite,305,405,"H 1",50);
  23.           string Market_point7 = DoubleToStr(iMA(NULL,0,h1,0,MODE_SMA,PRICE_WEIGHTED,0),Digits);
  24.    ObjectCreate("Market_Point7_Label", OBJ_LABEL, 0, 0, 0);
  25.    ObjectSetText("Market_Point7_Label", Market_point7, 14, FontType, clrWhite);
  26.    ObjectSet("Market_Point7_Label", OBJPROP_CORNER, WhichCorner0_3);
  27.    ObjectSet("Market_Point7_Label", OBJPROP_XDISTANCE, 100);
  28.    ObjectSet("Market_Point7_Label", OBJPROP_YDISTANCE, 405);
  29.    
  30.             anniu("m15",clrWhite,305,445,"M15",50);
  31.              string Market_point8 = DoubleToStr(iMA(NULL,0,m15,0,MODE_SMA,PRICE_WEIGHTED,0),Digits);
  32.    ObjectCreate("Market_Point8_Label", OBJ_LABEL, 0, 0, 0);
  33.    ObjectSetText("Market_Point8_Label", Market_point8, 14, FontType, clrWhite);
  34.    ObjectSet("Market_Point8_Label", OBJPROP_CORNER, WhichCorner0_3);
  35.    ObjectSet("Market_Point8_Label", OBJPROP_XDISTANCE, 100);
  36.    ObjectSet("Market_Point8_Label", OBJPROP_YDISTANCE, 445);
  37.    
  38.                anniu("m5",clrWhite,305,485,"M 5",50);
  39.                 string Market_point9 = DoubleToStr(iMA(NULL,0,m5,0,MODE_SMA,PRICE_WEIGHTED,0),Digits);
  40.    ObjectCreate("Market_Point9_Label", OBJ_LABEL, 0, 0, 0);
  41.    ObjectSetText("Market_Point9_Label", Market_point9, 14, FontType, clrWhite);
  42.    ObjectSet("Market_Point9_Label", OBJPROP_CORNER, WhichCorner0_3);
  43.    ObjectSet("Market_Point9_Label", OBJPROP_XDISTANCE, 100);
  44.    ObjectSet("Market_Point9_Label", OBJPROP_YDISTANCE, 485);
  45.    
  46.                   anniu("m1",clrWhite,305,525,"M 1",50);
  47.                 string Market_point11 = DoubleToStr(iMA(NULL,0,m1,0,MODE_SMA,PRICE_WEIGHTED,0),Digits);
  48.    ObjectCreate("Market_Point11_Label", OBJ_LABEL, 0, 0, 0);
  49.    ObjectSetText("Market_Point11_Label", Market_point11, 14, FontType, clrWhite);
  50.    ObjectSet("Market_Point11_Label", OBJPROP_CORNER, WhichCorner0_3);
  51.    ObjectSet("Market_Point11_Label", OBJPROP_XDISTANCE, 100);
  52.    ObjectSet("Market_Point11_Label", OBJPROP_YDISTANCE, 525);
  53.     return(0);
  54. }
复制代码
太阳每天升起,每天都是新的一天。

2128

主题

6万

积分

157

精华

大型投行

金钱
61594 美元
权重
640
30
发表于 2020-4-16 10:19 | 只看该作者
573 发表于 2020-4-16 10:15
没有加进去
还有止损价与现价的距离,小于这个距离也改不动。
但是我是手动交易,

浮亏状态下;止盈=开仓价。此时,止损改不动

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
31
 楼主| 发表于 2020-4-16 10:20 | 只看该作者
573 发表于 2020-4-16 10:18
均线价格搞定了,很笨的方法,但是能用

太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
32
 楼主| 发表于 2020-4-16 10:22 | 只看该作者
frlin2003 发表于 2020-4-16 10:19
浮亏状态下;止盈=开仓价。此时,止损改不动

单子没浮盈,不加仓。
单子浮亏,更不加仓。
只有在加仓的时候,前面的单子才设置平保
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
33
 楼主| 发表于 2020-4-16 10:26 | 只看该作者
frlin2003 发表于 2020-4-16 10:19
浮亏状态下;止盈=开仓价。此时,止损改不动

因为是手动交易,所有的逻辑在脑子里,不用写进代码里,
代码只是工具,手动执行的时候,逻辑必须是合理的,否则,就是违反了交易系统规则。
太阳每天升起,每天都是新的一天。

0

主题

9299

积分

0

精华

操盘专家

金钱
9299 美元
权重
0
34
发表于 2020-4-16 16:59 | 只看该作者
573 发表于 2020-4-16 10:26
因为是手动交易,所有的逻辑在脑子里,不用写进代码里,
代码只是工具,手动执行的时候,逻辑必须是合理 ...

五老板已经码汇双修了,可喜可贺

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
35
 楼主| 发表于 2020-4-16 18:55 | 只看该作者
这个上穿下穿均线全部平仓的代码应该没问题,怎么就不执行呢?


  1. void macloseall()
  2. {
  3.   if(iHigh(0,0,0)>=iMA(0,0,ma,0,MODE_SMA,PRICE_WEIGHTED,0)&& iHigh(0,0,1)<iMA(0,0,ma,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=1)
  4.   {
  5.   mark=1;
  6.   closeall();
  7.   }
  8.   if(iLow(0,0,0)<=iMA(0,0,ma,0,MODE_SMA,PRICE_WEIGHTED,0)&& iLow(0,0,1)>iMA(0,0,ma,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=2)
  9.   {
  10.   mark=2;
  11.   closeall();
  12.   }
  13. }
复制代码
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
36
 楼主| 发表于 2020-4-16 18:56 | 只看该作者
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
37
 楼主| 发表于 2020-4-16 18:58 | 只看该作者
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
38
 楼主| 发表于 2020-4-16 19:02 | 只看该作者
还有个问题,如何侦测到图表周期和品种的更改?因为图表周期和品种更换后必须终止均线跟踪止损的运行。
太阳每天升起,每天都是新的一天。

19

主题

1万

积分

3

精华

蟹老板

操盘专家

金钱
19029 美元
权重
3
39
发表于 2020-4-16 21:39 | 只看该作者
573 发表于 2020-4-16 19:02
还有个问题,如何侦测到图表周期和品种的更改?因为图表周期和品种更换后必须终止均线跟踪止损的运行。

5爷,你这个一键设置止损,能否这样?假如我开了2单,一单浮盈,一单亏损,我想统一设置一个止损,这个止损刚好是2单同时止损的保本点?
不要怂、满仓干。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
40
 楼主| 发表于 2020-4-16 22:16 | 只看该作者
老五 发表于 2020-4-16 21:39
5爷,你这个一键设置止损,能否这样?假如我开了2单,一单浮盈,一单亏损,我想统一设置一个止损,这个止 ...

可以增加一个键,单击后执行2个命令:均价设止盈;均价设止损。
这样应该可以吧。

评分

参与人数 1金钱 +66 收起 理由
老五 + 66 说的在理!

查看全部评分

太阳每天升起,每天都是新的一天。
您需要登录后才可以回帖 登录 | 快捷注册(禁q号)

本版积分规则

QQ|黄金吧|黄金论坛|手机版|指标下载|非农|目录|交易危机

版权所有: ©2014-2021 fx3q.com Powered by Discuz! X3
皖ICP备: 2024050410号-2

风险提示:杠杆风险高,交易要谨慎 声明:坛友发言和回复均为个人观点,不代表论坛立场。
若有侵权请联系fx3q@qq.com删除

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