交易危机

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

QQ登录

只需一步,快速开始

搜索
广告位
123
返回列表 发新帖
楼主: 573
打印 上一主题 下一主题

[期货] 百万计划,六月开始

[复制链接]

12

主题

2192

积分

2

精华

中级操盘手

金钱
2192 美元
权重
0
41
发表于 2020-6-11 18:49 | 只看该作者
5爷能分享下你的那个ABC 加仓的代码么!  我手工加仓老是容易加太重!!

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
42
 楼主| 发表于 2020-6-11 19:45 来自手机 | 只看该作者
hpy6666 发表于 2020-6-11 18:49
5爷能分享下你的那个ABC 加仓的代码么!  我手工加仓老是容易加太重!!

我的开仓加仓,全是手工的,出场是均线跟踪止损出场。

7

主题

3481

积分

0

精华

中级操盘手

金钱
3481 美元
权重
0
43
发表于 2020-6-11 20:18 | 只看该作者
573 发表于 2020-6-11 19:45
我的开仓加仓,全是手工的,出场是均线跟踪止损出场。

这个均线跟踪止损有ea么  大佬 这是好东西呀

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
44
 楼主| 发表于 2020-6-11 20:40 | 只看该作者
daleihaoshuai 发表于 2020-6-11 20:18
这个均线跟踪止损有ea么  大佬 这是好东西呀

外行做的,内行看了会笑掉大牙 挂单部分还没完成

  1. //+------------------------------------------------------------------+
  2. //|                                             均线跟踪一键助手.mq4 |
  3. //|                                                              573 |
  4. //+------------------------------------------------------------------+
  5. #property copyright "573"
  6. #property link      ""
  7. #property version   "1.00"
  8. #property strict
  9. #property indicator_chart_window
  10. input double  默认下单手数=0.01;
  11. input int     默认挂单个数=1;
  12. input int     默认挂单点数=10;
  13. input double  默认跟踪距离=0.1;
  14. bool   画均价线开关=1;
  15. bool   均线跟踪开关0=0, 均线跟踪开关1=0, 均线跟踪开关2=0, 均线跟踪开关3=0;
  16. bool   均线减仓开关0=0, 均线减仓开关1=0, 均线减仓开关2=0, 均线减仓开关3=0;
  17. string 周期显示;
  18. string matxt3, matxt2, matxt1;
  19. string 跟踪品种, 减仓品种;
  20. string 跟踪周期显示0, 跟踪周期显示1, 跟踪周期显示2, 跟踪周期显示3;
  21. string 减仓周期显示0, 减仓周期显示1, 减仓周期显示2, 减仓周期显示3;
  22. string 减仓仓位显示0, 减仓仓位显示1, 减仓仓位显示2, 减仓仓位显示3;
  23. int    ma0gz, ma111111gz, ma222222gz, ma333333gz;
  24. int    ma0, ma111111, ma222222, ma333333;
  25. int    ma, ma3, ma2, ma1;
  26. int    magic=111111;
  27. int    mark=0;
  28. int    跟踪周期, 减仓周期, 挂单点数, 挂单个数;
  29. double 跟踪距离, 下单手数, 当前货币浮盈;
  30. double duo, kong;
  31. double dstp1, dstp2;
  32. double pt;
  33. double lotN=1, lotN0=0.5, lotN1=0.5, lotN2=0.5, lotN3=0.5;
  34. double AvgPrice, AvgPriceX, AvgPrice111111, AvgPrice222222, AvgPrice333333;
  35. double counttrades, counttradesX, counttrades111111, counttrades222222, counttrades333333;
  36. //+------------------------------------------------------------------+
  37. //|                                                                  |
  38. //+------------------------------------------------------------------+
  39. void OnInit()
  40.   {
  41.    下单手数=默认下单手数;
  42.    挂单个数=默认挂单个数;
  43.    挂单点数=默认挂单点数;
  44.    跟踪距离=默认跟踪距离;
  45.    shurukuang("tp",clrWhite,90,174,80);
  46.    ObjectSetString(0,"tp",OBJPROP_TEXT,"0");
  47.    shurukuang("dstp",clrWhite,180,174,80);
  48.    ObjectSetString(0,"dstp",OBJPROP_TEXT,"30");
  49.    shurukuang("jetp",clrWhite,270,174,80);
  50.    ObjectSetString(0,"jetp",OBJPROP_TEXT,"30");
  51.    shurukuang("jl",clrWhite,180,255,40);
  52.    ObjectSetString(0,"jl",OBJPROP_TEXT,"0.5");
  53.    shurukuang("lots",clrWhite,270,464,40);
  54.    ObjectSetString(0,"lots",OBJPROP_TEXT,"0.10");
  55.    shurukuang("danshu_gua",clrWhite,180,464,40);
  56.    ObjectSetString(0,"danshu_gua",OBJPROP_TEXT,"5");
  57.    shurukuang("dianshu_gua",clrWhite,90,464,40);
  58.    ObjectSetString(0,"dianshu_gua",OBJPROP_TEXT,"20");
  59.    OnTick();
  60.   }
  61. //+------------------------------------------------------------------+
  62. //|                                                                  |
  63. //+------------------------------------------------------------------+
  64. void OnDeinit(const int reason)
  65.   {
  66.    ObjectsDeleteAll(0);
  67.    return;
  68.   }
  69. //+------------------------------------------------------------------+
  70. //|                                                                  |
  71. //+------------------------------------------------------------------+
  72. void OnTick()
  73.   {
  74. //监测调试();
  75.    ObjectDelete("均价线");
  76.    if(画均价线开关==1)
  77.      {
  78.       ObjectCreate("均价线",OBJ_HLINE,0,Time[0],AvgPrice(Symbol(),1)+AvgPrice(Symbol(),2));
  79.       ObjectSet("均价线",OBJPROP_STYLE,STYLE_DASH);
  80.       ObjectSet("均价线",OBJPROP_COLOR,clrLime);
  81.      }
  82.    ObjectDelete("未设止损单数");
  83.    ObjectDelete("危险提示");
  84.    ObjectDelete("止盈");
  85.    if(Symbol()==OrderSymbol())
  86.      {
  87.       string 正负号;
  88.       if(SL_金额()>0)
  89.          正负号="+";
  90.       else 正负号="";
  91.       if(未设止损单数()<OrdersTotal() && AccountBalance()>0)
  92.          text("未设止损单数", 3,32,"宋体",clrCrimson,Symbol()+"__"+IntegerToString(orders(0)+orders(1))+":  !SL_"+IntegerToString(未设止损单数())+"    SL_"+IntegerToString(orders(0)+orders(1)-未设止损单数())+" = "+正负号+DoubleToStr(SL_金额(),2)+" / "+DoubleToStr(AccountBalance(),2)+" = "+正负号+DoubleToStr(SL_金额()*(100/AccountBalance()),2)+"%",1688, 50);
  93.       if(未设止损单数()==OrdersTotal())
  94.          text("危险提示", 3,32,"宋体",clrCrimson,Symbol()+"__"+IntegerToString(orders(0)+orders(1))+":  !SL_"+IntegerToString(未设止损单数())+"!!!",1688, 50);
  95.       text("止盈", 3,32,"宋体",clrDodgerBlue,"TP = "+DoubleToStr(TP_金额(),2),1988, 50);
  96.      }
  97.    msg();
  98.    按钮排版();
  99.    均线周期();
  100.    分组_平均价_订单量_组号();
  101.    显示_组件_右侧();
  102.    显示_日期_时间_星期_品种_周期_点差();
  103.    显示_A组持仓_均价_跟踪_减仓();
  104.    显示_B组持仓_均价_跟踪_减仓();
  105.    显示_C组持仓_均价_跟踪_减仓();
  106.    显示_所有组持仓_均价_跟踪_减仓();
  107.    if(Symbol()=="EURUSDm" || Symbol()=="GBPUSDm" || Symbol()=="AUDUSDm" || Symbol()=="NZDUSDm" || Symbol()=="USDCADm" || Symbol()=="USDCHFm")
  108.       pt=0.0001;
  109.    if(Symbol()=="XAUUSDm"||Symbol()=="BTCUSDm")
  110.       pt=1;
  111.    if(Symbol()=="USDJPYm"||Symbol()=="USOILm")
  112.       pt=0.01;
  113.    for(int a=0; a<OrdersTotal(); a++)
  114.      {
  115.       if(OrderSelect(a,SELECT_BY_POS)==true && OrderSymbol()==Symbol())
  116.         {
  117.          if(CountTrades(1,Symbol(),"",0)!=0)
  118.             当前货币浮盈=(Bid-AvgPrice(Symbol(),1))*(1/pt);
  119.          if(CountTrades(2,Symbol(),"",1)!=0)
  120.             当前货币浮盈=(AvgPrice(Symbol(),2)-Ask)*(1/pt);
  121.         }
  122.      }
  123.    if(OrdersTotal()>0)
  124.      {
  125.       for(int i=0; i<OrdersTotal(); i++)
  126.         {
  127.          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
  128.             break;
  129.          else
  130.            {
  131.             if(均线跟踪开关1==1)
  132.               {
  133.                if(跟踪品种==Symbol() && 跟踪周期==Period() && 跟踪距离!=0 && OrderMagicNumber()==111111)
  134.                  {
  135.                   if(OrderType()==OP_BUY && (iMA(Symbol(),0,ma111111gz,0,MODE_SMA,PRICE_WEIGHTED,0)-OrderStopLoss())*(1/pt)>(跟踪距离-0.05)*pt)
  136.                      bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma111111gz,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  137.                   if(OrderType()==OP_SELL && (OrderStopLoss()-iMA(Symbol(),0,ma111111gz,0,MODE_SMA,PRICE_WEIGHTED,0))*(1/pt)>(跟踪距离-0.05)*pt)
  138.                      bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma111111gz,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  139.                  }
  140.               }
  141.             if(减仓品种==Symbol() && 减仓周期==Period() && 均线减仓开关1==1 && OrderMagicNumber()==111111)
  142.               {
  143.                if(OrderType()==OP_BUY && Bid<=iMA(Symbol(),0,ma111111,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=1)
  144.                  {
  145.                   closeall();
  146.                   mark=1;
  147.                   均线减仓开关1=0;
  148.                  }
  149.                if(OrderType()==OP_SELL && Ask>=iMA(Symbol(),0,ma111111,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=2)
  150.                  {
  151.                   closeall();
  152.                   mark=2;
  153.                   均线减仓开关1=0;
  154.                  }
  155.               }
  156.             if(均线跟踪开关2==1)
  157.               {
  158.                if(跟踪品种==Symbol() && 跟踪周期==Period() && 跟踪距离!=0 && OrderMagicNumber()==222222)
  159.                  {
  160.                   if(OrderType()==OP_BUY && (iMA(Symbol(),0,ma222222gz,0,MODE_SMA,PRICE_WEIGHTED,0)-OrderStopLoss())*(1/pt)>(跟踪距离-0.05)*pt)
  161.                      bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma222222gz,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  162.                   if(OrderType()==OP_SELL && (OrderStopLoss()-iMA(Symbol(),0,ma222222gz,0,MODE_SMA,PRICE_WEIGHTED,0))*(1/pt)>(跟踪距离-0.05)*pt)
  163.                      bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma222222gz,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  164.                  }
  165.               }
  166.             if(减仓品种==Symbol() && 减仓周期==Period() && 均线减仓开关2==1 && OrderMagicNumber()==222222)
  167.               {
  168.                if(OrderType()==OP_BUY && Bid<=iMA(Symbol(),0,ma222222,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=1)
  169.                  {
  170.                   closeall();
  171.                   mark=1;
  172.                   均线减仓开关2=0;
  173.                  }
  174.                if(OrderType()==OP_SELL && Ask>=iMA(Symbol(),0,ma222222,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=2)
  175.                  {
  176.                   closeall();
  177.                   mark=2;
  178.                   均线减仓开关2=0;
  179.                  }
  180.               }
  181.             if(均线跟踪开关3==1)
  182.               {
  183.                if(跟踪品种==Symbol() && 跟踪周期==Period() && 跟踪距离!=0 && OrderMagicNumber()==333333)
  184.                  {
  185.                   if(OrderType()==OP_BUY && (iMA(Symbol(),0,ma333333gz,0,MODE_SMA,PRICE_WEIGHTED,0)-OrderStopLoss())*(1/pt)>(跟踪距离-0.05)*pt)
  186.                      bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma333333gz,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  187.                   if(OrderType()==OP_SELL && (OrderStopLoss()-iMA(Symbol(),0,ma333333gz,0,MODE_SMA,PRICE_WEIGHTED,0))*(1/pt)>(跟踪距离-0.05)*pt)
  188.                      bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma333333gz,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  189.                  }
  190.               }
  191.             if(减仓品种==Symbol() && 减仓周期==Period() && 均线减仓开关3==1 && OrderMagicNumber()==333333)
  192.               {
  193.                if(OrderType()==OP_BUY && Bid<=iMA(Symbol(),0,ma333333,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=1)
  194.                  {
  195.                   closeall();
  196.                   mark=1;
  197.                   均线减仓开关3=0;
  198.                  }
  199.                if(OrderType()==OP_SELL && Ask>=iMA(Symbol(),0,ma333333,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=2)
  200.                  {
  201.                   closeall();
  202.                   mark=2;
  203.                   均线减仓开关3=0;
  204.                  }
  205.               }
  206.             if(均线跟踪开关0==1)
  207.               {
  208.                if(跟踪品种==Symbol() && 跟踪周期==Period() && 跟踪距离!=0)
  209.                  {
  210.                   if(OrderType()==OP_BUY && (iMA(Symbol(),0,ma0gz,0,MODE_SMA,PRICE_WEIGHTED,0)-OrderStopLoss())*(1/pt)>(跟踪距离-0.05)*pt)
  211.                      bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma0gz,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  212.                   if(OrderType()==OP_SELL && (OrderStopLoss()-iMA(Symbol(),0,ma0gz,0,MODE_SMA,PRICE_WEIGHTED,0))*(1/pt)>(跟踪距离-0.05)*pt)
  213.                      bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma0gz,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  214.                  }
  215.               }
  216.             if(减仓品种==Symbol() && 减仓周期==Period() && 均线减仓开关0==1)
  217.               {
  218.                if(OrderType()==OP_BUY && Bid<=iMA(Symbol(),0,ma0,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=1)
  219.                  {
  220.                   closeall();
  221.                   mark=1;
  222.                   均线减仓开关0=0;
  223.                  }
  224.                if(OrderType()==OP_SELL && Ask>=iMA(Symbol(),0,ma0,0,MODE_SMA,PRICE_WEIGHTED,0)&& mark!=2)
  225.                  {
  226.                   closeall();
  227.                   mark=2;
  228.                   均线减仓开关0=0;
  229.                  }
  230.               }
  231.            }
  232.         }
  233.      }
  234.   }
  235. //+------------------------------------------------------------------+
  236. //|                                                                  |
  237. //+------------------------------------------------------------------+
  238. void OnChartEvent(const int id,  const long &lparam,  const double &dparam,  const string &sparam)
  239.   {
  240.    if(id==CHARTEVENT_OBJECT_ENDEDIT && ObjectGet(sparam,OBJPROP_TYPE)==OBJ_EDIT)
  241.      {
  242.       if(sparam=="lots")
  243.         {
  244.          string lots=ObjectGetString(0,"lots",OBJPROP_TEXT);
  245.          if(StringToDouble(lots)!=0)
  246.             下单手数=StringToDouble(lots);
  247.          else 下单手数=默认下单手数;
  248.          //OnTick();
  249.         }
  250.       if(sparam=="danshu_gua")
  251.         {
  252.          string danshu_gua=ObjectGetString(0,"danshu_gua",OBJPROP_TEXT);
  253.          if(StringToDouble(danshu_gua)!=0)
  254.             挂单个数=(int)StringToDouble(danshu_gua);
  255.          else 挂单个数=默认挂单个数;
  256.          //OnTick();
  257.         }
  258.       if(sparam=="dianshu_gua")
  259.         {
  260.          string dianshu_gua=ObjectGetString(0,"dianshu_gua",OBJPROP_TEXT);
  261.          if(StringToDouble(dianshu_gua)!=0)
  262.             挂单点数=(int)StringToDouble(dianshu_gua);
  263.          else 挂单点数=默认挂单点数;
  264.          //OnTick();
  265.         }
  266.       if(sparam=="jl")
  267.         {
  268.          string jl=ObjectGetString(0,"jl",OBJPROP_TEXT);
  269.          if(StringToDouble(jl)!=0)
  270.             跟踪距离=StringToDouble(jl);
  271.          else 跟踪距离=默认跟踪距离;
  272.          //OnTick();
  273.         }
  274.      }
  275.    if(id==CHARTEVENT_OBJECT_CLICK && ObjectGet(sparam,OBJPROP_TYPE)==OBJ_BUTTON)//  &&  OrderSymbol()==Symbol()
  276.      {
  277.       if(sparam=="A")
  278.         {
  279.          magic=111111;
  280.          OnTick();
  281.         }
  282.       if(sparam=="B")
  283.         {
  284.          magic=222222;
  285.          OnTick();
  286.         }
  287.       if(sparam=="C")
  288.         {
  289.          magic=333333;
  290.          OnTick();
  291.         }
  292.       if(sparam=="T")
  293.         {
  294.          magic=0;
  295.          OnTick();
  296.         }
  297.       if(sparam=="buy")
  298.          buy();
  299.       if(sparam=="sell")
  300.          sell();
  301.       if(sparam=="closeall")
  302.         {
  303.          均线跟踪开关归零();
  304.          均线减仓开关归零();
  305.          lotN=1;
  306.          lotN0=1;
  307.          lotN1=1;
  308.          lotN2=1;
  309.          lotN3=1;
  310.            {
  311.             if(magic==0)
  312.                closeall_0();
  313.             else
  314.                closeall();
  315.            }
  316.          lotN0=0.5;
  317.          lotN1=0.5;
  318.          lotN2=0.5;
  319.          lotN3=0.5;
  320.         }
  321.       if(sparam=="close1/2")
  322.         {
  323.          lotN=0.5;
  324.          lotN0=0.5;
  325.          lotN1=0.5;
  326.          lotN2=0.5;
  327.          lotN3=0.5;
  328.            {
  329.             if(magic==0)
  330.                closeall_0();
  331.             else
  332.                closeall();
  333.            }
  334.         }
  335.       if(sparam=="close1/3")
  336.         {
  337.          lotN=0.33333;
  338.          lotN0=0.33333;
  339.          lotN1=0.33333;
  340.          lotN2=0.33333;
  341.          lotN3=0.33333;
  342.            {
  343.             if(magic==0)
  344.                closeall_0();
  345.             else
  346.                closeall();
  347.            }
  348.          lotN0=0.5;
  349.          lotN1=0.5;
  350.          lotN2=0.5;
  351.          lotN3=0.5;
  352.         }
  353.       if(sparam=="delgua")
  354.         {
  355.            {
  356.             if(magic==0)
  357.                delgua_0();
  358.             else
  359.                delgua();
  360.            }
  361.         }
  362.       if(sparam=="dlpb")
  363.         {
  364.          均线跟踪开关归零();
  365.            {
  366.             if(magic==0)
  367.                dlpb_0();
  368.             else
  369.                dlpb();
  370.            }
  371.         }
  372.       if(sparam=="tpm")
  373.         {
  374.          string tp=ObjectGetString(0,"tp",OBJPROP_TEXT);
  375.            {
  376.             if(magic==0)
  377.                modifytp_0(StringToDouble(tp));
  378.             else
  379.                modifytp(StringToDouble(tp));
  380.            }
  381.         }
  382.       if(sparam=="slm")
  383.         {
  384.          均线跟踪开关归零();
  385.          string tp=ObjectGetString(0,"tp",OBJPROP_TEXT);
  386.            {
  387.             if(magic==0)
  388.                modifysl_0(StringToDouble(tp));
  389.             else
  390.                modifysl(StringToDouble(tp));
  391.            }
  392.         }
  393.       if(sparam=="gbgz")
  394.          均线跟踪开关归零();
  395.       if(sparam=="关闭减仓")
  396.          均线减仓开关归零();
  397.       if(sparam=="dstpm")
  398.         {
  399.          string dstp=ObjectGetString(0,"dstp",OBJPROP_TEXT);
  400.          dstp1=StringToDouble(dstp);
  401.          duo=AvgPriceX+dstp1*pt;
  402.          kong=AvgPriceX-dstp1*pt;
  403.            {
  404.             if(magic==0)
  405.                modifydstp_0();
  406.             else
  407.                modifydstp();
  408.            }
  409.         }
  410.       if(sparam=="dsslm")
  411.         {
  412.          均线跟踪开关归零();
  413.          string dstp=ObjectGetString(0,"dstp",OBJPROP_TEXT);
  414.          dstp1=StringToDouble(dstp);
  415.          duo=AvgPriceX-dstp1*pt;
  416.          kong=AvgPriceX+dstp1*pt;
  417.            {
  418.             if(magic==0)
  419.                modifydssl_0();
  420.             else
  421.                modifydssl();
  422.            }
  423.         }
  424.       if(sparam=="jetpm")
  425.         {
  426.          string jetp=ObjectGetString(0,"jetp",OBJPROP_TEXT);
  427.          dstp1=StringToDouble(jetp);
  428.          if(Symbol()=="BTCUSDm")
  429.             dstp2=dstp1*(1/counttradesX);
  430.                      if(Symbol()=="XAUUSDm")
  431.             dstp2=dstp1*(1/counttradesX)*0.01;
  432.          if(Symbol()=="USDJPYm")
  433.             dstp2=dstp1*(1/counttradesX)*0.1*Bid*0.01;
  434.          if(Symbol()=="USDCHFm"||Symbol()=="USDCADm")
  435.             dstp2=dstp1*(1/counttradesX)*0.1*Bid;
  436.          if(Symbol()=="EURUSDm" || Symbol()=="GBPUSDm" || Symbol()=="AUDUSDm" || Symbol()=="NZDUSDm"||Symbol()=="USOILm")
  437.             dstp2=dstp1*(1/counttradesX)*0.1;
  438.          duo=AvgPriceX+dstp2*pt;
  439.          kong=AvgPriceX-dstp2*pt;
  440.            {
  441.             if(magic==0)
  442.                modifydstp_0();
  443.             else
  444.                modifydstp();
  445.            }
  446.         }
  447.       if(sparam=="jeslm")
  448.         {
  449.          均线跟踪开关归零();
  450.          string jetp=ObjectGetString(0,"jetp",OBJPROP_TEXT);
  451.          dstp1=StringToDouble(jetp);
  452.          if(Symbol()=="BTCUSDm")
  453.             dstp2=dstp1*(1/counttradesX);
  454.                      if(Symbol()=="XAUUSDm")
  455.             dstp2=dstp1*(1/counttradesX)*0.01;
  456.          if(Symbol()=="USDJPYm")
  457.             dstp2=dstp1*(1/counttradesX)*0.1*Bid*0.01;
  458.          if(Symbol()=="USDCHFm"||Symbol()=="USDCADm")
  459.             dstp2=dstp1*(1/counttradesX)*0.1*Bid;
  460.          if(Symbol()=="EURUSDm" || Symbol()=="GBPUSDm" || Symbol()=="AUDUSDm" || Symbol()=="NZDUSDm"||Symbol()=="USOILm")
  461.             dstp2=dstp1*(1/counttradesX)*0.1;
  462.          duo=AvgPriceX-dstp2*pt;
  463.          kong=AvgPriceX+dstp2*pt;
  464.            {
  465.             if(magic==0)
  466.                modifydssl_0();
  467.             else
  468.                modifydssl();
  469.            }
  470.         }
  471.       if(sparam=="jjpb")
  472.         {
  473.          均线跟踪开关归零();
  474.            {
  475.             if(magic==0)
  476.                modifyjjpb_0();
  477.             else
  478.                modifyjjpb();
  479.            }
  480.         }
  481.       if(sparam=="anniuma3" && 跟踪距离!=0)
  482.         {
  483.          if(magic==111111)
  484.            {
  485.             均线跟踪开关1=1;
  486.             ma111111gz=ma3;
  487.             跟踪周期显示1=matxt3;
  488.            }
  489.          if(magic==222222)
  490.            {
  491.             均线跟踪开关2=1;
  492.             ma222222gz=ma3;
  493.             跟踪周期显示2=matxt3;
  494.            }
  495.          if(magic==333333)
  496.            {
  497.             均线跟踪开关3=1;
  498.             ma333333gz=ma3;
  499.             跟踪周期显示3=matxt3;
  500.            }
  501.          if(magic==0)
  502.            {
  503.             ma0gz=ma3;
  504.             跟踪周期显示0=matxt3;
  505.             均线跟踪开关归零();
  506.             均线跟踪开关0=1;
  507.            }
  508.          跟踪品种=Symbol();
  509.          跟踪周期=Period();
  510.          ma=ma3;
  511.            {
  512.             if(magic==0)
  513.                modifyma_0();
  514.             else
  515.                modifyma();
  516.            }
  517.         }
  518.       if(sparam=="anniuma2" && 跟踪距离!=0)
  519.         {
  520.          if(magic==111111)
  521.            {
  522.             均线跟踪开关1=1;
  523.             ma111111gz=ma2;
  524.             跟踪周期显示1=matxt2;
  525.            }
  526.          if(magic==222222)
  527.            {
  528.             均线跟踪开关2=1;
  529.             ma222222gz=ma2;
  530.             跟踪周期显示2=matxt2;
  531.            }
  532.          if(magic==333333)
  533.            {
  534.             均线跟踪开关3=1;
  535.             ma333333gz=ma2;
  536.             跟踪周期显示3=matxt2;
  537.            }
  538.          if(magic==0)
  539.            {
  540.             ma0gz=ma2;
  541.             跟踪周期显示0=matxt2;
  542.             均线跟踪开关归零();
  543.             均线跟踪开关0=1;
  544.            }
  545.          跟踪品种=Symbol();
  546.          跟踪周期=Period();
  547.          ma=ma2;
  548.            {
  549.             if(magic==0)
  550.                modifyma_0();
  551.             else
  552.                modifyma();
  553.            }
  554.         }
  555.       if(sparam=="anniuma1" && 跟踪距离!=0)
  556.         {
  557.          if(magic==111111)
  558.            {
  559.             均线跟踪开关1=1;
  560.             ma111111gz=ma1;
  561.             跟踪周期显示1=matxt1;
  562.            }
  563.          if(magic==222222)
  564.            {
  565.             均线跟踪开关2=1;
  566.             ma222222gz=ma1;
  567.             跟踪周期显示2=matxt1;
  568.            }
  569.          if(magic==333333)
  570.            {
  571.             均线跟踪开关3=1;
  572.             ma333333gz=ma1;
  573.             跟踪周期显示3=matxt1;
  574.            }
  575.          if(magic==0)
  576.            {
  577.             ma0gz=ma1;
  578.             跟踪周期显示0=matxt1;;
  579.             均线跟踪开关归零();
  580.             均线跟踪开关0=1;
  581.            }
  582.          跟踪品种=Symbol();
  583.          跟踪周期=Period();
  584.          ma=ma1;
  585.            {
  586.             if(magic==0)
  587.                modifyma_0();
  588.             else
  589.                modifyma();
  590.            }
  591.         }
  592.       if(sparam=="anniuma3_减仓")
  593.         {
  594.          if(magic==111111)
  595.            {
  596.             均线减仓开关1=1;
  597.             ma111111=ma3;
  598.             减仓周期显示1=matxt3;
  599.            }
  600.          if(magic==222222)
  601.            {
  602.             均线减仓开关2=1;
  603.             ma222222=ma3;
  604.             减仓周期显示2=matxt3;
  605.            }
  606.          if(magic==333333)
  607.            {
  608.             均线减仓开关3=1;
  609.             ma333333=ma3;
  610.             减仓周期显示3=matxt3;
  611.            }
  612.          if(magic==0)
  613.            {
  614.             ma0=ma3;
  615.             减仓周期显示0=matxt3;
  616.             均线减仓开关归零();
  617.             均线减仓开关0=1;
  618.            }
  619.          减仓品种=Symbol();
  620.          减仓周期=Period();
  621.          mark=0;
  622.         }
  623.       if(sparam=="anniuma2_减仓")
  624.         {
  625.          if(magic==111111)
  626.            {
  627.             均线减仓开关1=1;
  628.             ma111111=ma2;
  629.             减仓周期显示1=matxt2;
  630.            }
  631.          if(magic==222222)
  632.            {
  633.             均线减仓开关2=1;
  634.             ma222222=ma2;
  635.             减仓周期显示2=matxt2;
  636.            }
  637.          if(magic==333333)
  638.            {
  639.             均线减仓开关3=1;
  640.             ma333333=ma2;
  641.             减仓周期显示3=matxt2;
  642.            }
  643.          if(magic==0)
  644.            {
  645.             ma0=ma2;
  646.             减仓周期显示0=matxt2;
  647.             均线减仓开关归零();
  648.             均线减仓开关0=1;
  649.            }
  650.          减仓品种=Symbol();
  651.          减仓周期=Period();
  652.          mark=0;
  653.         }
  654.       if(sparam=="anniuma1_减仓")
  655.         {
  656.          if(magic==111111)
  657.            {
  658.             均线减仓开关1=1;
  659.             ma111111=ma1;
  660.             减仓周期显示1=matxt1;
  661.            }
  662.          if(magic==222222)
  663.            {
  664.             均线减仓开关2=1;
  665.             ma222222=ma1;
  666.             减仓周期显示2=matxt1;
  667.            }
  668.          if(magic==333333)
  669.            {
  670.             均线减仓开关3=1;
  671.             ma333333=ma1;
  672.             减仓周期显示3=matxt1;
  673.            }
  674.          if(magic==0)
  675.            {
  676.             ma0=ma1;
  677.             减仓周期显示0=matxt1;
  678.             均线减仓开关归零();
  679.             均线减仓开关0=1;
  680.            }
  681.          减仓品种=Symbol();
  682.          减仓周期=Period();
  683.          mark=0;
  684.         }
  685.       if(sparam=="1/2_仓位")
  686.         {
  687.          if(magic==0)
  688.            {
  689.             lotN0=0.5;
  690.             lotN1=0.5;
  691.             lotN2=0.5;
  692.             lotN3=0.5;
  693.            }
  694.          if(magic==111111)
  695.             lotN1=0.5;
  696.          if(magic==222222)
  697.             lotN2=0.5;
  698.          if(magic==333333)
  699.             lotN3=0.5;
  700.          OnTick();
  701.         }
  702.       if(sparam=="1/3_仓位")
  703.         {
  704.          if(magic==0)
  705.            {
  706.             lotN0=0.33333;
  707.             lotN1=0.33333;
  708.             lotN2=0.33333;
  709.             lotN3=0.33333;
  710.            }
  711.          if(magic==111111)
  712.             lotN1=0.33333;
  713.          if(magic==222222)
  714.             lotN2=0.33333;
  715.          if(magic==333333)
  716.             lotN3=0.33333;
  717.          OnTick();
  718.         }
  719.       if(sparam=="2/3_仓位")
  720.         {
  721.          if(magic==0)
  722.            {
  723.             lotN0=0.66667;
  724.             lotN1=0.66667;
  725.             lotN2=0.66667;
  726.             lotN3=0.66667;
  727.            }
  728.          if(magic==111111)
  729.             lotN1=0.66667;
  730.          if(magic==222222)
  731.             lotN2=0.66667;
  732.          if(magic==333333)
  733.             lotN3=0.66667;
  734.          OnTick();
  735.         }
  736.      }
  737.   }
  738. //+------------------------------------------------------------------+
  739. //|                                             点数止盈             |
  740. //+------------------------------------------------------------------+
  741. void modifydstp()
  742.   {
  743.    int t=OrdersTotal();
  744.    for(int i=t-1; i>=0; i--)
  745.      {
  746.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  747.         {
  748.          if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  749.            {
  750.             if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  751.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),duo,0,CLR_NONE);
  752.             if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  753.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),kong,0,CLR_NONE);
  754.            }
  755.         }
  756.      }
  757.   }
  758. //+------------------------------------------------------------------+
  759. //|                                          点数止盈__0             |
  760. //+------------------------------------------------------------------+
  761. void modifydstp_0()
  762.   {
  763.    int t=OrdersTotal();
  764.    for(int i=t-1; i>=0; i--)
  765.      {
  766.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  767.         {
  768.          if(OrderSymbol()==Symbol())
  769.            {
  770.             if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
  771.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),duo,0,CLR_NONE);
  772.             if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
  773.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),kong,0,CLR_NONE);
  774.            }
  775.         }
  776.      }
  777.   }
  778. //+------------------------------------------------------------------+
  779. //|                                          点数止损                |
  780. //+------------------------------------------------------------------+
  781. void modifydssl()
  782.   {
  783.    int t=OrdersTotal();
  784.    for(int i=t-1; i>=0; i--)
  785.      {
  786.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  787.         {
  788.          if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  789.            {
  790.             if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  791.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),duo,OrderTakeProfit(),0,CLR_NONE);
  792.             if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  793.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),kong,OrderTakeProfit(),0,CLR_NONE);
  794.            }
  795.         }
  796.      }
  797.   }
复制代码
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
45
 楼主| 发表于 2020-6-11 20:41 | 只看该作者
  1. //+------------------------------------------------------------------+
  2. //|                                       点数止损__0                |
  3. //+------------------------------------------------------------------+
  4. void modifydssl_0()
  5.   {
  6.    int t=OrdersTotal();
  7.    for(int i=t-1; i>=0; i--)
  8.      {
  9.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  10.         {
  11.          if(OrderSymbol()==Symbol())
  12.            {
  13.             if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
  14.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),duo,OrderTakeProfit(),0,CLR_NONE);
  15.             if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
  16.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),kong,OrderTakeProfit(),0,CLR_NONE);
  17.            }
  18.         }
  19.      }
  20.   }
  21. //+------------------------------------------------------------------+
  22. //|                                        价格止盈                  |
  23. //+------------------------------------------------------------------+
  24. void modifytp(double tp)
  25.   {
  26.    int t=OrdersTotal();
  27.    for(int i=t-1; i>=0; i--)
  28.      {
  29.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  30.         {
  31.          if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  32.            {
  33.             if(OrderType()<=1 && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  34.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tp,0,CLR_NONE);
  35.            }
  36.         }
  37.      }
  38.   }
  39. //+------------------------------------------------------------------+
  40. //|                                        价格止盈__0               |
  41. //+------------------------------------------------------------------+
  42. void modifytp_0(double tp)
  43.   {
  44.    int t=OrdersTotal();
  45.    for(int i=t-1; i>=0; i--)
  46.      {
  47.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  48.         {
  49.          if(OrderSymbol()==Symbol())
  50.            {
  51.             if(OrderType()<=1 && OrderSymbol()==Symbol())
  52.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tp,0,CLR_NONE);
  53.            }
  54.         }
  55.      }
  56.   }
  57. //+------------------------------------------------------------------+
  58. //|                                        价格止损                  |
  59. //+------------------------------------------------------------------+
  60. void modifysl(double tp)
  61.   {
  62.    int t=OrdersTotal();
  63.    for(int i=t-1; i>=0; i--)
  64.      {
  65.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  66.         {
  67.          if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  68.            {
  69.             if(OrderType()<=1 && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  70.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),tp,OrderTakeProfit(),0,CLR_NONE);
  71.            }
  72.         }
  73.      }
  74.   }
  75. //+------------------------------------------------------------------+
  76. //|                                        价格止损__0               |
  77. //+------------------------------------------------------------------+
  78. void modifysl_0(double tp)
  79.   {
  80.    int t=OrdersTotal();
  81.    for(int i=t-1; i>=0; i--)
  82.      {
  83.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  84.         {
  85.          if(OrderSymbol()==Symbol())
  86.            {
  87.             if(OrderType()<=1 && OrderSymbol()==Symbol())
  88.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),tp,OrderTakeProfit(),0,CLR_NONE);
  89.            }
  90.         }
  91.      }
  92.   }
  93. //+------------------------------------------------------------------+
  94. //|                                    均线止损                      |
  95. //+------------------------------------------------------------------+
  96. void modifyma()
  97.   {
  98.    int t=OrdersTotal();
  99.    for(int i=t-1; i>=0; i--)
  100.      {
  101.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  102.          if(OrderType()<=1 && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  103.             bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  104.      }
  105.   }
  106. //+------------------------------------------------------------------+
  107. //|                                    均线止损__0                   |
  108. //+------------------------------------------------------------------+
  109. void modifyma_0()
  110.   {
  111.    int t=OrdersTotal();
  112.    for(int i=t-1; i>=0; i--)
  113.      {
  114.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  115.         {
  116.          if(OrderType()<=1 && OrderSymbol()==Symbol())
  117.             bool res=OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(),0,ma,0,MODE_SMA,PRICE_WEIGHTED,0),OrderTakeProfit(),0,CLR_NONE);
  118.         }
  119.      }
  120.   }
  121. //+------------------------------------------------------------------+
  122. //|                                 均价平保                         |
  123. //+------------------------------------------------------------------+
  124. void modifyjjpb()
  125.   {
  126.    int t=OrdersTotal();
  127.    for(int i=t-1; i>=0; i--)
  128.      {
  129.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  130.         {
  131.          if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  132.            {
  133.             if(OrderType()<=1 && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  134.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),AvgPriceX,OrderTakeProfit(),0,CLR_NONE);
  135.            }
  136.         }
  137.      }
  138.   }
  139. //+------------------------------------------------------------------+
  140. //|                                 均价平保__0                      |
  141. //+------------------------------------------------------------------+
  142. void modifyjjpb_0()
  143.   {
  144.    int t=OrdersTotal();
  145.    for(int i=t-1; i>=0; i--)
  146.      {
  147.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  148.         {
  149.          if(OrderSymbol()==Symbol())
  150.            {
  151.             if(OrderType()<=1 && OrderSymbol()==Symbol())
  152.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),AvgPriceX,OrderTakeProfit(),0,CLR_NONE);
  153.            }
  154.         }
  155.      }
  156.   }
  157. //+------------------------------------------------------------------+
  158. //|                                  独立平保                        |
  159. //+------------------------------------------------------------------+
  160. void dlpb()
  161.   {
  162.    int t=OrdersTotal();
  163.    for(int i=t-1; i>=0; i--)
  164.      {
  165.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  166.         {
  167.          if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  168.            {
  169.             if(OrderType()<=1 && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  170.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE);
  171.            }
  172.         }
  173.      }
  174.   }
  175. //+------------------------------------------------------------------+
  176. //|                                  独立平保__0                     |
  177. //+------------------------------------------------------------------+
  178. void dlpb_0()
  179.   {
  180.    int t=OrdersTotal();
  181.    for(int i=t-1; i>=0; i--)
  182.      {
  183.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  184.         {
  185.          if(OrderSymbol()==Symbol())
  186.            {
  187.             if(OrderType()<=1 && OrderSymbol()==Symbol())
  188.                bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE);
  189.            }
  190.         }
  191.      }
  192.   }
  193. //+------------------------------------------------------------------+
  194. //|                          现价买                                  |
  195. //+------------------------------------------------------------------+
  196. void buy()
  197.   {
  198.    if(magic==0)
  199.      {
  200.       if(OrdersTotal()==0 || OrderType()!=OP_SELL)
  201.          Alert("请选择A、B、C组,系统规则禁止Total组开单!");
  202.       else
  203.          Alert("当前货币已持有空单,系统规则禁止双向开单!");
  204.      }
  205.    else
  206.      {
  207.       if(OrdersTotal()==0 || OrderType()!=OP_SELL || OrderSymbol()!=Symbol())
  208.         {
  209.          int ticket=OrderSend(Symbol(),OP_BUY,下单手数,Ask,3,0,0,IntegerToString(magic),magic,0,CLR_NONE);
  210.          if(ticket<0)
  211.             Alert("OrderSend 失败错误 #",GetLastError());
  212.         }
  213.       else
  214.          Alert("当前货币已持有空单,系统规则禁止双向开单!");
  215.      }
  216.   }
  217. //+------------------------------------------------------------------+
  218. //|                           现价卖                                 |
  219. //+------------------------------------------------------------------+
  220. void sell()
  221.   {
  222.    if(magic==0)
  223.      {
  224.       if(OrdersTotal()==0 || OrderType()!=OP_BUY)
  225.          Alert("请选择A、B、C组,系统规则禁止Total组开单!");
  226.       else
  227.          Alert("当前货币已持有多单,系统规则禁止双向开单!");
  228.      }
  229.    else
  230.      {
  231.       if(OrdersTotal()==0 || OrderType()!=OP_BUY || OrderSymbol()!=Symbol())
  232.         {
  233.          int ticket=OrderSend(Symbol(),OP_SELL,下单手数,Bid,3,0,0,IntegerToString(magic),magic,0,CLR_NONE);
  234.          if(ticket<0)
  235.             Alert("OrderSend 失败错误 #",GetLastError());
  236.         }
  237.       else
  238.          Alert("当前货币已持有多单,系统规则禁止双向开单!");
  239.      }
  240.   }
  241. //+------------------------------------------------------------------+
  242. //|                           Buy_Stop                               |
  243. //+------------------------------------------------------------------+
  244. void Buy_Stop()
  245.   {

  246.   }
  247. //+------------------------------------------------------------------+
  248. //|                           Buy_Limit                              |
  249. //+------------------------------------------------------------------+
  250. void Buy_Limit()
  251.   {

  252.   }
  253. //+------------------------------------------------------------------+
  254. //|                           Sell_Stop                              |
  255. //+------------------------------------------------------------------+
  256. void Sell_Stop()
  257.   {

  258.   }
  259. //+------------------------------------------------------------------+
  260. //|                           Sell_Limit                             |
  261. //+------------------------------------------------------------------+
  262. void Sell_Limit()
  263.   {

  264.   }
  265. //+------------------------------------------------------------------+
  266. //|                                     全部平仓                     |
  267. //+------------------------------------------------------------------+
  268. void closeall()
  269.   {
  270.    int total=OrdersTotal();
  271.    for(int cnt=total-1; cnt>=0; cnt--)
  272.      {
  273.       bool res=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
  274.       if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  275.         {
  276.          double lot = NormalizeDouble(OrderLots()*lotN, 2);
  277.          bool close=OrderClose(OrderTicket(),lot,Ask,3,CLR_NONE);
  278.         }
  279.       if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  280.         {
  281.          double lot = NormalizeDouble(OrderLots()*lotN, 2);
  282.          bool close=OrderClose(OrderTicket(),lot,Bid,3,CLR_NONE);
  283.         }
  284.      }
  285.   }
  286. //+------------------------------------------------------------------+
  287. //|                                  全部平仓__0                     |
  288. //+------------------------------------------------------------------+
  289. void closeall_0()
  290.   {
  291.    int total=OrdersTotal();
  292.    for(int cnt=total-1; cnt>=0; cnt--)
  293.      {
  294.       bool res=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
  295.       if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
  296.         {
  297.          double lot = NormalizeDouble(OrderLots()*lotN, 2);
  298.          bool close=OrderClose(OrderTicket(),lot,Ask,3,CLR_NONE);
  299.         }
  300.       if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
  301.         {
  302.          double lot = NormalizeDouble(OrderLots()*lotN, 2);
  303.          bool close=OrderClose(OrderTicket(),lot,Bid,3,CLR_NONE);
  304.         }
  305.      }
  306.   }
  307. //+------------------------------------------------------------------+
  308. //|                         删除挂单                                 |
  309. //+------------------------------------------------------------------+
  310. void delgua()
  311.   {
  312.    int t=OrdersTotal();
  313.    for(int i=t-1; i>=0; i--)
  314.      {
  315.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  316.         {
  317.          if(OrderType()>1 && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  318.             bool res=OrderDelete(OrderTicket());
  319.         }
  320.      }
  321.   }
  322. //+------------------------------------------------------------------+
  323. //|                         删除挂单__0                              |
  324. //+------------------------------------------------------------------+
  325. void delgua_0()
  326.   {
  327.    int t=OrdersTotal();
  328.    for(int i=t-1; i>=0; i--)
  329.      {
  330.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
  331.         {
  332.          if(OrderType()>1 && OrderSymbol()==Symbol())
  333.             bool res=OrderDelete(OrderTicket());
  334.         }
  335.      }
  336.   }
  337. //+------------------------------------------------------------------+
  338. //|                     订单数量统计111111                           |
  339. //+------------------------------------------------------------------+
  340. double CountTrades111111(int duokong,string hb,string ordtip,int ordtype)
  341.   {
  342.    double count=0;
  343.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  344.      {
  345.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  346.       if(OrderSymbol() == hb && OrderMagicNumber()==111111)
  347.         {
  348.          if(duokong == 1)
  349.            {
  350.             if(OrderType() == ordtype)
  351.                count+=OrderLots();
  352.            }
  353.          if(duokong == 2)
  354.            {
  355.             if(OrderType() == ordtype)
  356.                count+=OrderLots();
  357.            }
  358.         }
  359.      }
  360.    return (count);
  361.   }
  362. //+------------------------------------------------------------------+
  363. //|   计算多单或者空单的平均入场价,结果精确到汇率小数点位111111     |
  364. //+------------------------------------------------------------------+
  365. double AvgPrice111111(int ddz,string hb,int duokong)
  366.   {
  367.    double sum = 0;
  368.    double lots = 0;
  369.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  370.      {
  371.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  372.       if(OrderSymbol() == hb && OrderMagicNumber()==111111)
  373.         {
  374.          if(duokong == 1)
  375.            {
  376.             if(OrderType() == 0)
  377.               {
  378.                sum += OrderOpenPrice() * OrderLots();
  379.                lots += OrderLots();
  380.               }
  381.            }
  382.          if(duokong == 2)
  383.            {
  384.             if(OrderType() == 1)
  385.               {
  386.                sum += OrderOpenPrice() * OrderLots();
  387.                lots += OrderLots();
  388.               }
  389.            }
  390.         }
  391.      }
  392.    double ret;
  393.    if(lots!=0)
  394.       ret = NormalizeDouble(sum/lots,5);
  395.    else
  396.       ret=0;
  397.    return (ret);
  398.   }
  399. //+------------------------------------------------------------------+
  400. //|                     订单数量统计222222                           |
  401. //+------------------------------------------------------------------+
  402. double CountTrades222222(int duokong,string hb,string ordtip,int ordtype)
  403.   {
  404.    double count=0;
  405.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  406.      {
  407.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  408.       if(OrderSymbol() == hb && OrderMagicNumber()==222222)
  409.         {
  410.          if(duokong == 1)
  411.            {
  412.             if(OrderType() == ordtype)
  413.                count+=OrderLots();
  414.            }
  415.          if(duokong == 2)
  416.            {
  417.             if(OrderType() == ordtype)
  418.                count+=OrderLots();
  419.            }
  420.         }
  421.      }
  422.    return (count);
  423.   }
  424. //+------------------------------------------------------------------+
  425. //|    计算多单或者空单的平均入场价,结果精确到汇率小数点位222222    |
  426. //+------------------------------------------------------------------+
  427. double AvgPrice222222(int ddz,string hb,int duokong)
  428.   {
  429.    double sum = 0;
  430.    double lots = 0;
  431.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  432.      {
  433.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  434.       if(OrderSymbol() == hb && OrderMagicNumber()==222222)
  435.         {
  436.          if(duokong == 1)
  437.            {
  438.             if(OrderType() == 0)
  439.               {
  440.                sum += OrderOpenPrice() * OrderLots();
  441.                lots += OrderLots();
  442.               }
  443.            }
  444.          if(duokong == 2)
  445.            {
  446.             if(OrderType() == 1)
  447.               {
  448.                sum += OrderOpenPrice() * OrderLots();
  449.                lots += OrderLots();
  450.               }
  451.            }
  452.         }
  453.      }
  454.    double ret;
  455.    if(lots!=0)
  456.       ret = NormalizeDouble(sum/lots,5);
  457.    else
  458.       ret=0;
  459.    return (ret);
  460.   }
  461. //+------------------------------------------------------------------+
  462. //|                     订单数量统计333333                           |
  463. //+------------------------------------------------------------------+
  464. double CountTrades333333(int duokong,string hb,string ordtip,int ordtype)
  465.   {
  466.    double count=0;
  467.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  468.      {
  469.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  470.       if(OrderSymbol() == hb && OrderMagicNumber()==333333)
  471.         {
  472.          if(duokong == 1)
  473.            {
  474.             if(OrderType() == ordtype)
  475.                count+=OrderLots();
  476.            }
  477.          if(duokong == 2)
  478.            {
  479.             if(OrderType() == ordtype)
  480.                count+=OrderLots();
  481.            }
  482.         }
  483.      }
  484.    return (count);
  485.   }
  486. //+------------------------------------------------------------------+
  487. //|    计算多单或者空单的平均入场价,结果精确到汇率小数点位333333    |
  488. //+------------------------------------------------------------------+
  489. double AvgPrice333333(int ddz,string hb,int duokong)
  490.   {
  491.    double sum = 0;
  492.    double lots = 0;
  493.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  494.      {
  495.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  496.       if(OrderSymbol() == hb && OrderMagicNumber()==333333)
  497.         {
  498.          if(duokong == 1)
  499.            {
  500.             if(OrderType() == 0)
  501.               {
  502.                sum += OrderOpenPrice() * OrderLots();
  503.                lots += OrderLots();
  504.               }
  505.            }
  506.          if(duokong == 2)
  507.            {
  508.             if(OrderType() == 1)
  509.               {
  510.                sum += OrderOpenPrice() * OrderLots();
  511.                lots += OrderLots();
  512.               }
  513.            }
  514.         }
  515.      }
  516.    double ret;
  517.    if(lots!=0)
  518.       ret = NormalizeDouble(sum/lots,5);
  519.    else
  520.       ret=0;
  521.    return (ret);
  522.   }
  523. //+------------------------------------------------------------------+
  524. //|                     订单量统计                                   |
  525. //+------------------------------------------------------------------+
  526. double CountTrades(int duokong,string hb,string ordtip,int ordtype)
  527.   {
  528.    double count=0;
  529.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  530.      {
  531.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  532.       if(OrderSymbol() == hb)
  533.         {
  534.          if(duokong == 1)
  535.            {
  536.             if(OrderType() == ordtype)
  537.                count+=OrderLots();
  538.            }
  539.          if(duokong == 2)
  540.            {
  541.             if(OrderType() == ordtype)
  542.                count+=OrderLots();
  543.            }
  544.         }
  545.      }
  546.    return (count);
  547.   }
  548. //+------------------------------------------------------------------+
  549. //|       计算多单或者空单的平均入场价,结果精确到汇率小数点位       |
  550. //+------------------------------------------------------------------+
  551. double AvgPrice(string hb,int duokong)
  552.   {
  553.    double sum = 0;
  554.    double lots = 0;
  555.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  556.      {
  557.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  558.       if(OrderSymbol() == hb)
  559.         {
  560.          if(duokong == 1)
  561.            {
  562.             if(OrderType() == 0)
  563.               {
  564.                sum += OrderOpenPrice() * OrderLots();
  565.                lots += OrderLots();
  566.               }
  567.            }
  568.          if(duokong == 2)
  569.            {
  570.             if(OrderType() == 1)
  571.               {
  572.                sum += OrderOpenPrice() * OrderLots();
  573.                lots += OrderLots();
  574.               }
  575.            }
  576.         }
  577.      }
  578.    double ret;
  579.    if(lots!=0)
  580.       ret = NormalizeDouble(sum/lots,5);
  581.    else
  582.       ret=0;
  583.    return (ret);
  584.   }
  585. //+------------------------------------------------------------------+
  586. //|             持仓单个数统计111111 (0多单,1空单)                |
  587. //+------------------------------------------------------------------+
  588. int orders111111(int type)
  589.   {
  590.    int orders111111=0;
  591.    for(int i=0; i<OrdersTotal(); i++)
  592.      {
  593.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
  594.          break;
  595.       if(OrderSymbol()==Symbol() && OrderMagicNumber()==111111)
  596.         {
  597.          if(OrderType()==type)
  598.             orders111111++;
  599.         }
  600.      }
  601.    return(orders111111);
  602.   }
  603. //+------------------------------------------------------------------+
  604. //|             持仓单个数统计222222 (0多单,1空单)                |
  605. //+------------------------------------------------------------------+
  606. int orders222222(int type)
  607.   {
  608.    int orders222222=0;
  609.    for(int i=0; i<OrdersTotal(); i++)
  610.      {
  611.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
  612.          break;
  613.       if(OrderSymbol()==Symbol() && OrderMagicNumber()==222222)
  614.         {
  615.          if(OrderType()==type)
  616.             orders222222++;
  617.         }
  618.      }
  619.    return(orders222222);
  620.   }
  621. //+------------------------------------------------------------------+
  622. //|             持仓单个数统计333333 (0多单,1空单)                |
  623. //+------------------------------------------------------------------+
  624. int orders333333(int type)
  625.   {
  626.    int orders333333=0;
  627.    for(int i=0; i<OrdersTotal(); i++)
  628.      {
  629.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
  630.          break;
  631.       if(OrderSymbol()==Symbol() && OrderMagicNumber()==333333)
  632.         {
  633.          if(OrderType()==type)
  634.             orders333333++;
  635.         }
  636.      }
  637.    return(orders333333);
  638.   }
  639. //+------------------------------------------------------------------+
  640. //|                持仓单个数统计 (0多单,1空单)                   |
  641. //+------------------------------------------------------------------+
  642. int orders(int type)
  643.   {
  644.    int orders=0;
  645.    for(int i=0; i<OrdersTotal(); i++)
  646.      {
  647.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
  648.          break;
  649.       if(OrderSymbol()==Symbol())
  650.         {
  651.          if(OrderType()==type)
  652.             orders++;
  653.         }
  654.      }
  655.    return(orders);
  656.   }
  657. //+------------------------------------------------------------------+
  658. //|                未设止损单个数统计 (0多单,1空单)         |
  659. //+------------------------------------------------------------------+
  660. int 未设止损单数()
  661.   {
  662.    int 未设止损单数=0;
  663.    for(int i=0; i<OrdersTotal(); i++)
  664.      {
  665.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
  666.          break;
  667.       if(OrderSymbol()==Symbol())
  668.         {
  669.          if(OrderStopLoss()==0)
  670.             未设止损单数++;
  671.         }
  672.      }
  673.    return(未设止损单数);
  674.   }
  675. //+------------------------------------------------------------------+
  676. //|       计算多单或者空单设置的止损的总金额                |
  677. //+------------------------------------------------------------------+
  678. double TP_金额()
  679.   {
  680.    double sum_duo = 0;
  681.    double sum_kong = 0;
  682.    double lots = 0;
  683.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  684.      {
  685.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  686.       if(OrderSymbol() == Symbol() && OrderTakeProfit()!=0)
  687.         {
  688.          if(OrderType() == OP_BUY)
  689.             sum_duo += (OrderTakeProfit()-OrderOpenPrice()) * OrderLots();
  690.          if(OrderType() == OP_SELL)
  691.             sum_kong += (OrderOpenPrice()-OrderTakeProfit()) * OrderLots();
  692.         }
  693.      }
  694.    double ret=0;
  695.    if(Symbol()=="XAUUSDm")
  696.       ret = (sum_duo + sum_kong)*(10/Point)*0.01;
  697.    if(Symbol()=="BTCUSDm")
  698.       ret = (sum_duo + sum_kong);
  699.    if(Symbol()=="USDJPYm")
  700.       ret = (sum_duo + sum_kong)*(1/Point)*(100/Bid);
  701.    if(Symbol()=="USDCHFm"||Symbol()=="USDCADm")
  702.       ret = (sum_duo + sum_kong)*(1/Point)*(1/Bid);
  703.    if(Symbol()=="EURUSDm" || Symbol()=="GBPUSDm" || Symbol()=="AUDUSDm" || Symbol()=="NZDUSDm"||Symbol()=="USOILm")
  704.       ret = (sum_duo + sum_kong)*(1/Point)*1;
  705.    return (ret);
  706.   }
  707. //+------------------------------------------------------------------+
  708. //|               统计持仓单设置的止损的金额                         |
  709. //+------------------------------------------------------------------+
  710. double SL_金额()
  711.   {
  712.    double sum_duo = 0;
  713.    double sum_kong = 0;
  714.    double lots = 0;
  715.    for(int pos = OrdersTotal() - 1; pos >= 0; pos--)
  716.      {
  717.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
  718.       if(OrderSymbol() == Symbol() && OrderStopLoss()!=0)
  719.         {
  720.          if(OrderType() == OP_BUY)
  721.             sum_duo += (OrderStopLoss()-OrderOpenPrice()) * OrderLots();
  722.          if(OrderType() == OP_SELL)
  723.             sum_kong += (OrderOpenPrice()-OrderStopLoss()) * OrderLots();
  724.         }
  725.      }
  726.    double ret=0;
  727.    if(Symbol()=="XAUUSDm")
  728.       ret = (sum_duo + sum_kong)*(10/Point)*0.01;
  729.    if(Symbol()=="BTCUSDm")
  730.       ret = (sum_duo + sum_kong);
  731.    if(Symbol()=="USDJPYm")
  732.       ret = (sum_duo + sum_kong)*(1/Point)*(100/Bid);
  733.    if(Symbol()=="USDCHFm"||Symbol()=="USDCADm")
  734.       ret = (sum_duo + sum_kong)*(1/Point)*(1/Bid);
  735.    if(Symbol()=="EURUSDm" || Symbol()=="GBPUSDm" || Symbol()=="AUDUSDm" || Symbol()=="NZDUSDm"||Symbol()=="USOILm")
  736.       ret = (sum_duo + sum_kong)*(1/Point)*1;
  737.    return (ret);
  738.   }
  739. //+------------------------------------------------------------------+
  740. //|                 统计账户出金的累计金额                           |
  741. //+------------------------------------------------------------------+
  742. double 出金()
  743.   {
  744.    double sum_out=0;
  745.    for(int pos = OrdersHistoryTotal() - 1; pos >= 0; pos--)
  746.      {
  747.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY);
  748.       if(res==true)
  749.         {
  750.          string str1 = OrderComment();
  751.          string str2;
  752.          str2=StringSubstr(str1, 0, 12);
  753.          if(str2=="W-OTC365-USD")
  754.             sum_out += OrderProfit();
  755.         }
  756.      }
  757.    return (sum_out);
  758.   }
  759. //+------------------------------------------------------------------+
  760. //|                            统计账户入金的累计金额                |
  761. //+------------------------------------------------------------------+
  762. double 入金()
  763.   {
  764.    double sum_in=0;
  765.    for(int pos = OrdersHistoryTotal() - 1; pos >= 0; pos--)
  766.      {
  767.       bool res=OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY);
  768.       if(res==true)
  769.         {
  770.          string str1 = OrderComment();
  771.          string str2;
  772.          str2=StringSubstr(str1, 0, 12);
  773.          if(str2=="D-OTC365-USD")
  774.             sum_in += OrderProfit();
  775.         }
  776.      }
  777.    return (sum_in);
  778.   }
复制代码
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
46
 楼主| 发表于 2020-6-11 20:43 | 只看该作者
  1. //+------------------------------------------------------------------+
  2. //|                                                                  |
  3. //+------------------------------------------------------------------+
  4. void 分组_平均价_订单量_组号()
  5.   {
  6.    if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
  7.      {
  8.       AvgPrice111111=AvgPrice111111(1,Symbol(),1);
  9.       AvgPrice222222=AvgPrice222222(1,Symbol(),1);
  10.       AvgPrice333333=AvgPrice333333(1,Symbol(),1);
  11.       AvgPrice=AvgPrice(Symbol(),1);
  12.      }
  13.    if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
  14.      {
  15.       AvgPrice111111=AvgPrice111111(2,Symbol(),2);
  16.       AvgPrice222222=AvgPrice222222(2,Symbol(),2);
  17.       AvgPrice333333=AvgPrice333333(2,Symbol(),2);
  18.       AvgPrice=AvgPrice(Symbol(),2);
  19.      }
  20.    counttrades111111=CountTrades111111(1,Symbol(),"",0)+CountTrades111111(2,Symbol(),"",1);
  21.    counttrades222222=CountTrades222222(1,Symbol(),"",0)+CountTrades222222(2,Symbol(),"",1);
  22.    counttrades333333=CountTrades333333(1,Symbol(),"",0)+CountTrades333333(2,Symbol(),"",1);
  23.    counttrades=CountTrades(1,Symbol(),"",0)+CountTrades(2,Symbol(),"",1);

  24.    if(magic==111111)
  25.      {
  26.       AvgPriceX=AvgPrice111111;
  27.       counttradesX=counttrades111111;
  28.       lotN=lotN1;
  29.       ObjectSetInteger(0,"A",OBJPROP_BGCOLOR,clrDarkGreen);
  30.       ObjectSetInteger(0,"A",OBJPROP_FONTSIZE,32);
  31.      }
  32.    if(magic==222222)
  33.      {
  34.       AvgPriceX=AvgPrice222222;
  35.       counttradesX=counttrades222222;
  36.       lotN=lotN2;
  37.       ObjectSetInteger(0,"B",OBJPROP_BGCOLOR,clrDarkGreen);
  38.       ObjectSetInteger(0,"B",OBJPROP_FONTSIZE,32);
  39.      }
  40.    if(magic==333333)
  41.      {
  42.       AvgPriceX=AvgPrice333333;
  43.       counttradesX=counttrades333333;
  44.       lotN=lotN3;
  45.       ObjectSetInteger(0,"C",OBJPROP_BGCOLOR,clrDarkGreen);
  46.       ObjectSetInteger(0,"C",OBJPROP_FONTSIZE,32);
  47.      }
  48.    if(magic==0)
  49.      {
  50.       AvgPriceX=AvgPrice;
  51.       counttradesX=counttrades;
  52.       lotN=lotN0;
  53.       ObjectSetInteger(0,"T",OBJPROP_BGCOLOR,clrDarkGreen);
  54.       ObjectSetInteger(0,"T",OBJPROP_FONTSIZE,24);
  55.      }
  56.   }
  57. //+------------------------------------------------------------------+
  58. //|                       均线减仓开关归零                           |
  59. //+------------------------------------------------------------------+
  60. void 均线减仓开关归零(void)
  61.   {
  62.    均线减仓开关0=0;
  63.    均线减仓开关1=0;
  64.    均线减仓开关2=0;
  65.    均线减仓开关3=0;
  66.   }
  67. //+------------------------------------------------------------------+
  68. //|                         均线跟踪开关归零                         |
  69. //+------------------------------------------------------------------+
  70. void 均线跟踪开关归零(void)
  71.   {
  72.    均线跟踪开关0=0;
  73.    均线跟踪开关1=0;
  74.    均线跟踪开关2=0;
  75.    均线跟踪开关3=0;
  76.   }
  77. //+------------------------------------------------------------------+
  78. //|                              均线周期                            |
  79. //+------------------------------------------------------------------+
  80. void 均线周期()
  81.   {
  82.    if(Period()==43200)
  83.      {
  84.       ma1=0;
  85.       matxt1="月";
  86.       ma2=0;
  87.       matxt2="年";
  88.       ma3=0;
  89.       matxt3="----";
  90.       周期显示="月";
  91.      }
  92.    if(Period()==10080)
  93.      {
  94.       ma1=0;
  95.       matxt1="W1";
  96.       ma2=0;
  97.       matxt2="月";
  98.       ma3=0;
  99.       matxt3="年";
  100.       周期显示="W1";
  101.      }
  102.    if(Period()==1440)
  103.      {
  104.       ma1=0;
  105.       matxt1="D1";
  106.       ma2=0;
  107.       matxt2="W1";
  108.       ma3=0;
  109.       matxt3="月";
  110.       周期显示="D1";
  111.      }
  112.    if(Period()==240)
  113.      {
  114.       ma1=14;
  115.       matxt1="H4";
  116.       ma2=0;
  117.       matxt2="D1";
  118.       ma3=0;
  119.       matxt3="W1";
  120.       周期显示="H4";
  121.      }
  122.    if(Period()==60)
  123.      {
  124.       ma1=14;
  125.       matxt1="H1";
  126.       ma2=56;
  127.       matxt2="H4";
  128.       ma3=336;
  129.       matxt3="D1";
  130.       周期显示="H1";
  131.      }
  132.    if(Period()==30)
  133.      {
  134.       ma1=28;
  135.       matxt1="H1";
  136.       ma2=112;
  137.       matxt2="H4";
  138.       ma3=672;
  139.       matxt3="D1";
  140.       周期显示="M30";
  141.      }
  142.    if(Period()==15)
  143.      {
  144.       ma1=14;
  145.       matxt1="M15";
  146.       ma2=56;
  147.       matxt2="H1";
  148.       ma3=224;
  149.       matxt3="H4";
  150.       周期显示="M15";
  151.      }
  152.    if(Period()==5)
  153.      {
  154.       ma1=14;
  155.       matxt1="M5";
  156.       ma2=42;
  157.       matxt2="M15";
  158.       ma3=168;
  159.       matxt3="H1";
  160.       周期显示="M5";
  161.      }
  162.    if(Period()==1)
  163.      {
  164.       ma1=14;
  165.       matxt1="M1";
  166.       ma2=70;
  167.       matxt2="M5";
  168.       ma3=210;
  169.       matxt3="M15";
  170.       周期显示="M1";
  171.      }
  172.   }
  173. //+------------------------------------------------------------------+
  174. //|                                                                  |
  175. //+------------------------------------------------------------------+
  176. void 显示_组件_右侧()
  177.   {
  178.    if(lotN0==0.5 && magic==0)
  179.       ObjectSetInteger(0,"1/2_仓位",OBJPROP_COLOR,clrWhite);
  180.    if(lotN1==0.5 && magic==111111)
  181.       ObjectSetInteger(0,"1/2_仓位",OBJPROP_COLOR,clrWhite);
  182.    if(lotN2==0.5 && magic==222222)
  183.       ObjectSetInteger(0,"1/2_仓位",OBJPROP_COLOR,clrWhite);
  184.    if(lotN3==0.5 && magic==333333)
  185.       ObjectSetInteger(0,"1/2_仓位",OBJPROP_COLOR,clrWhite);
  186.    if(lotN0==0.33333 && magic==0)
  187.       ObjectSetInteger(0,"1/3_仓位",OBJPROP_COLOR,clrWhite);
  188.    if(lotN1==0.33333 && magic==111111)
  189.       ObjectSetInteger(0,"1/3_仓位",OBJPROP_COLOR,clrWhite);
  190.    if(lotN2==0.33333 && magic==222222)
  191.       ObjectSetInteger(0,"1/3_仓位",OBJPROP_COLOR,clrWhite);
  192.    if(lotN3==0.33333 && magic==333333)
  193.       ObjectSetInteger(0,"1/3_仓位",OBJPROP_COLOR,clrWhite);
  194.    if(lotN0==0.66667 && magic==0)
  195.       ObjectSetInteger(0,"2/3_仓位",OBJPROP_COLOR,clrWhite);
  196.    if(lotN1==0.66667 && magic==111111)
  197.       ObjectSetInteger(0,"2/3_仓位",OBJPROP_COLOR,clrWhite);
  198.    if(lotN2==0.66667 && magic==222222)
  199.       ObjectSetInteger(0,"2/3_仓位",OBJPROP_COLOR,clrWhite);
  200.    if(lotN3==0.66667 && magic==333333)
  201.       ObjectSetInteger(0,"2/3_仓位",OBJPROP_COLOR,clrWhite);
  202.    ObjectDelete("跟踪距离");
  203.    ObjectDelete("均线3");
  204.    ObjectDelete("均线2");
  205.    ObjectDelete("均线1");
  206.    ObjectDelete("下单手数");
  207.    ObjectDelete("挂单个数");
  208.    ObjectDelete("挂单点数");
  209.    text("跟踪距离",1,10,"Arial",clrDodgerBlue,(string)跟踪距离+"点",135, 260);
  210.    text("均线3",1,10,"Arial",clrDodgerBlue,DoubleToStr(iMA(NULL,0,ma3,0,MODE_SMA,PRICE_WEIGHTED,0),Digits)+"   "+matxt3,180, 324);
  211.    text("均线2",1,10,"Arial",clrDodgerBlue,DoubleToStr(iMA(NULL,0,ma2,0,MODE_SMA,PRICE_WEIGHTED,0),Digits)+"   "+matxt2,180, 357);
  212.    text("均线1",1,10,"Arial",clrDodgerBlue,DoubleToStr(iMA(NULL,0,ma1,0,MODE_SMA,PRICE_WEIGHTED,0),Digits)+"   "+matxt1,180, 390);
  213.    text("下单手数",1,10,"Arial",clrDodgerBlue,DoubleToStr(下单手数,2)+"手",228, 470);
  214.    text("挂单个数",1,10,"Arial",clrDodgerBlue,DoubleToStr(挂单个数,0)+"个",133, 470);
  215.    text("挂单点数",1,10,"Arial",clrDodgerBlue,DoubleToStr(挂单点数,0)+"点",43, 470);
  216.    string 正负号;
  217.    if(AccountProfit()>0)
  218.       正负号="+";
  219.    else 正负号="";
  220.    ObjectDelete("账户");
  221.    text("账户",1,9,"Arial",clrWhite,"账户统计:",270, 540);
  222.    ObjectDelete("出入金统计时间");
  223.    for(int pos = OrdersHistoryTotal() - 1; pos >= 0; pos--)
  224.      {
  225.       bool res=OrderSelect(1, SELECT_BY_POS, MODE_HISTORY);
  226.       if(res==true)
  227.          text("出入金统计时间",1,9,"Arial",clrMediumOrchid,"起始日期  "+TimeToStr(OrderOpenTime(),TIME_DATE),180, 540);
  228.      }
  229.    ObjectDelete("入金");
  230.    text("入金",1,9,"Arial",clrMediumOrchid,"入金 "+DoubleToStr(入金(),2),180, 560);
  231.    ObjectDelete("出金");
  232.    text("出金",1,9,"Arial",clrMediumOrchid,"出金 "+DoubleToStr(出金(),2),90, 560);
  233.    ObjectDelete("余额");
  234.    text("余额",1,9,"Arial",clrDodgerBlue,"余额 "+DoubleToStr(AccountBalance(),2),270, 580);
  235.    ObjectDelete("净值");
  236.    text("净值",1,9,"Arial",clrDodgerBlue,"净值 "+DoubleToStr(AccountEquity(),2),180, 580);
  237.    ObjectDelete("浮盈");
  238.    text("浮盈",1,9,"Arial",clrDodgerBlue,"浮盈 "+正负号+DoubleToStr(AccountProfit(),2),90, 580);
  239.    ObjectDelete("当前货币");
  240.    text("当前货币",1,9,"Arial",clrWhite,"当前货币:",270, 615);
  241.    ObjectDelete("无订单Symbol");
  242.    if(counttrades+counttrades111111+counttrades222222+counttrades333333==0)
  243.       text("无订单Symbol",1,9,"Arial",clrDodgerBlue,Symbol()+"         无订单",270, 635);
  244.    ObjectDelete("Symbol");
  245.    for(int a=0; a<OrdersTotal(); a++)
  246.      {
  247.       if(OrderSelect(a,SELECT_BY_POS)==true && OrderSymbol()==Symbol())
  248.         {
  249.          string 正负号1;
  250.          if(当前货币浮盈>0)
  251.             正负号1="+";
  252.          else 正负号1="";
  253.          string duokong;
  254.          if(OrderType()==0)
  255.             duokong="多单";
  256.          if(OrderType()==1)
  257.             duokong="空单";
  258.          text("Symbol",1,9,"Arial",clrDodgerBlue,Symbol()+"      "+duokong+"持仓 "+DoubleToStr(counttrades,2)+"      获利点数 "+正负号1+DoubleToStr(当前货币浮盈,2),270, 635);
  259.         }
  260.      }
  261.   }
  262. //+------------------------------------------------------------------+
  263. //|                                                                  |
  264. //+------------------------------------------------------------------+
  265. void 显示_A组持仓_均价_跟踪_减仓()
  266.   {
  267.    ObjectDelete("无订单a");
  268.    ObjectDelete("多单a");
  269.    ObjectDelete("空单a");
  270.    ObjectDelete("跟踪运行a");
  271.    ObjectDelete("跟踪未启动a");
  272.    ObjectDelete("减仓运行a");
  273.    ObjectDelete("减仓运行a1");
  274.    ObjectDelete("减仓未启动a");
  275.    for(int a=0; a<OrdersTotal(); a++)
  276.      {
  277.       if(OrderSelect(a,SELECT_BY_POS)==true && OrderSymbol()==Symbol())
  278.         {
  279.          if(CountTrades111111(1,Symbol(),"",0)==0 && CountTrades111111(2,Symbol(),"",1)==0)
  280.             text("无订单a",3,9,"Arial",clrDodgerBlue,"A:无订单",270, 240);
  281.          if(CountTrades111111(1,Symbol(),"",0)!=0)
  282.             text("多单a",3,9,"Arial",clrWhite,"A:多单 "+IntegerToString(orders111111(0))+"个     共计 "+DoubleToStr(CountTrades111111(1,Symbol(),"",0),2)+"     均价 "+DoubleToStr(AvgPrice111111(1,Symbol(),1),Digits),270, 240);
  283.          if(CountTrades111111(2,Symbol(),"",1)!=0)
  284.             text("空单a",3,9,"Arial",clrWhite,"A:空单 "+IntegerToString(orders111111(1))+"个     共计 "+DoubleToStr(CountTrades111111(2,Symbol(),"",1),2)+"     均价 "+DoubleToStr(AvgPrice111111(2,Symbol(),2),Digits),270, 240);
  285.          if(CountTrades111111(1,Symbol(),"",0)+CountTrades111111(2,Symbol(),"",1)!=0)
  286.            {
  287.             if(跟踪距离!=0 && 均线跟踪开关1==1 && 跟踪品种==Symbol() && 跟踪周期==Period())
  288.                text("跟踪运行a",3,9,"Arial",clrRed,周期显示+"周期__"+跟踪周期显示1+"均线__"+(string)跟踪距离+"点__跟踪止损,运行中",270, 220);
  289.             else
  290.                text("跟踪未启动a",3,9,"Arial",clrDimGray,"均线跟踪止损  未启动",270, 220);
  291.             if(均线减仓开关1==1 && 减仓品种==Symbol() && 减仓周期==Period())
  292.               {
  293.                if(mark==0)
  294.                   text("减仓运行a",3,9,"Arial",clrRed,周期显示+"周期__"+减仓周期显示1+"均线__"+减仓仓位显示1+"减仓,运行中,",270, 200);
  295.                if(mark!=0)
  296.                   text("减仓运行a1",3,9,"Arial",clrRed,周期显示+"周期__"+减仓周期显示1+"均线__"+减仓仓位显示1+"减仓,已成功!",270, 200);
  297.               }
  298.             else
  299.                text("减仓未启动a",3,9,"Arial",clrDimGray,"均线减仓  未启动",270, 200);
  300.            }
  301.         }
  302.      }
  303.   }
  304. //+------------------------------------------------------------------+
  305. //|                                                                  |
  306. //+------------------------------------------------------------------+
  307. void 显示_B组持仓_均价_跟踪_减仓()
  308.   {
  309.    ObjectDelete("无订单b");
  310.    ObjectDelete("多单b");
  311.    ObjectDelete("空单b");
  312.    ObjectDelete("跟踪运行b");
  313.    ObjectDelete("跟踪未启动b");
  314.    ObjectDelete("减仓运行b");
  315.    ObjectDelete("减仓运行b1");
  316.    ObjectDelete("减仓未启动b");
  317.    for(int a=0; a<OrdersTotal(); a++)
  318.      {
  319.       if(OrderSelect(a,SELECT_BY_POS)==true && OrderSymbol()==Symbol())
  320.         {
  321.          if(CountTrades222222(1,Symbol(),"",0)==0 && CountTrades222222(2,Symbol(),"",1)==0)
  322.             text("无订单b",3,9,"Arial",clrDodgerBlue,"B:无订单",270, 180);
  323.          if(CountTrades222222(1,Symbol(),"",0)!=0)
  324.             text("多单b",3,9,"Arial",clrWhite,"B:多单 "+IntegerToString(orders222222(0))+"个     共计 "+DoubleToStr(CountTrades222222(1,Symbol(),"",0),2)+"     均价 "+DoubleToStr(AvgPrice222222(1,Symbol(),1),Digits),270, 180);
  325.          if(CountTrades222222(2,Symbol(),"",1)!=0)
  326.             text("空单b",3,9,"Arial",clrWhite,"B:空单 "+IntegerToString(orders222222(1))+"个     共计 "+DoubleToStr(CountTrades222222(2,Symbol(),"",1),2)+"     均价 "+DoubleToStr(AvgPrice222222(2,Symbol(),2),Digits),270, 180);
  327.          if(CountTrades222222(1,Symbol(),"",0)+CountTrades222222(2,Symbol(),"",1)!=0)
  328.            {
  329.             if(跟踪距离!=0 && 均线跟踪开关2==1 && 跟踪品种==Symbol() && 跟踪周期==Period())
  330.                text("跟踪运行b",3,9,"Arial",clrRed,周期显示+"周期__"+跟踪周期显示2+"均线__"+(string)跟踪距离+"点__跟踪止损,运行中",270, 160);
  331.             else
  332.                text("跟踪未启动b",3,9,"Arial",clrDimGray,"均线跟踪止损  未启动",270, 160);
  333.             if(均线减仓开关2==1 && 减仓品种==Symbol() && 减仓周期==Period())
  334.               {
  335.                if(mark==0)
  336.                   text("减仓运行b",3,9,"Arial",clrRed,周期显示+"周期__"+减仓周期显示2+"均线__"+减仓仓位显示2+"减仓,运行中,",270, 140);
  337.                if(mark!=0)
  338.                   text("减仓运行b1",3,9,"Arial",clrRed,周期显示+"周期__"+减仓周期显示2+"均线__"+减仓仓位显示2+"减仓,已成功!",270, 140);
  339.               }
  340.             else
  341.                text("减仓未启动b",3,9,"Arial",clrDimGray,"均线减仓  未启动",270, 140);
  342.            }
  343.         }
  344.      }
  345.   }
  346. //+------------------------------------------------------------------+
  347. //|                                                                  |
  348. //+------------------------------------------------------------------+
  349. void 显示_C组持仓_均价_跟踪_减仓()
  350.   {
  351.    ObjectDelete("无订单c");
  352.    ObjectDelete("多单c");
  353.    ObjectDelete("空单c");
  354.    ObjectDelete("跟踪运行c");
  355.    ObjectDelete("跟踪未启动c");
  356.    ObjectDelete("减仓运行c");
  357.    ObjectDelete("减仓运行c1");
  358.    ObjectDelete("减仓未启动c");
  359.    for(int a=0; a<OrdersTotal(); a++)
  360.      {
  361.       if(OrderSelect(a,SELECT_BY_POS)==true && OrderSymbol()==Symbol())
  362.         {
  363.          if(CountTrades333333(1,Symbol(),"",0)==0 && CountTrades333333(2,Symbol(),"",1)==0)
  364.             text("无订单c",3,9,"Arial",clrDodgerBlue,"C:无订单",270, 120);
  365.          if(CountTrades333333(1,Symbol(),"",0)!=0)
  366.             text("多单c",3,9,"Arial",clrWhite,"C:多单 "+IntegerToString(orders333333(0))+"个     共计 "+DoubleToStr(CountTrades333333(1,Symbol(),"",0),2)+"     均价 "+DoubleToStr(AvgPrice333333(1,Symbol(),1),Digits),270, 120);
  367.          if(CountTrades333333(2,Symbol(),"",1)!=0)
  368.             text("空单c",3,9,"Arial",clrWhite,"C:空单 "+IntegerToString(orders333333(1))+"个     共计 "+DoubleToStr(CountTrades333333(2,Symbol(),"",1),2)+"     均价 "+DoubleToStr(AvgPrice333333(2,Symbol(),2),Digits),270, 120);
  369.          if(CountTrades333333(1,Symbol(),"",0)+CountTrades333333(2,Symbol(),"",1)!=0)
  370.            {
  371.             if(跟踪距离!=0 && 均线跟踪开关3==1 && 跟踪品种==Symbol() && 跟踪周期==Period())
  372.                text("跟踪运行c",3,9,"Arial",clrRed,周期显示+"周期__"+跟踪周期显示3+"均线__"+(string)跟踪距离+"点__跟踪止损,运行中",270, 100);
  373.             else
  374.                text("跟踪未启动c",3,9,"Arial",clrDimGray,"均线跟踪止损  未启动",270, 100);
  375.             if(均线减仓开关3==1 && 减仓品种==Symbol() && 减仓周期==Period())
  376.               {
  377.                if(mark==0)
  378.                   text("减仓运行c",3,9,"Arial",clrRed,周期显示+"周期__"+减仓周期显示3+"均线__"+减仓仓位显示3+"减仓,运行中,",270, 80);
  379.                if(mark!=0)
  380.                   text("减仓运行c1",3,9,"Arial",clrRed,周期显示+"周期__"+减仓周期显示3+"均线__"+减仓仓位显示3+"减仓,已成功!",270, 80);
  381.               }
  382.             else
  383.                text("减仓未启动c",3,9,"Arial",clrDimGray,"均线减仓  未启动",270, 80);
  384.            }
  385.         }
  386.      }
  387.   }
  388. //+------------------------------------------------------------------+
  389. //|                                                                  |
  390. //+------------------------------------------------------------------+
  391. void 显示_所有组持仓_均价_跟踪_减仓()
  392.   {
  393.    ObjectDelete("无订单all");
  394.    ObjectDelete("多单all");
  395.    ObjectDelete("空单all");
  396.    ObjectDelete("跟踪运行all");
  397.    ObjectDelete("跟踪未启动all");
  398.    ObjectDelete("减仓运行all");
  399.    ObjectDelete("减仓运行all1");
  400.    ObjectDelete("减仓未启动all");
  401.    if(OrdersTotal()==0)
  402.       text("无订单all",3,9,"Arial",clrDodgerBlue,"Total"+":无订单",270, 60);
  403.    for(int a=0; a<OrdersTotal(); a++)
  404.      {
  405.       if(OrderSelect(a,SELECT_BY_POS)==true && OrderSymbol()==Symbol())
  406.         {
  407.          if(CountTrades(1,Symbol(),"",0)==0 && CountTrades(2,Symbol(),"",1)==0)
  408.             text("无订单all",3,9,"Arial",clrDodgerBlue,"Total"+":无订单",270, 60);
  409.          if(CountTrades(1,Symbol(),"",0)!=0)
  410.             text("多单all",3,9,"Arial",clrDodgerBlue,"Total"+":多单 "+IntegerToString(orders(0))+"个     共计 "+DoubleToStr(CountTrades(1,Symbol(),"",0),2)+"     均价 "+DoubleToStr(AvgPrice(Symbol(),1),Digits),270, 60);
  411.          if(CountTrades(2,Symbol(),"",1)!=0)
  412.             text("空单all",3,9,"Arial",clrDodgerBlue,"Total"+ ":空单 "+IntegerToString(orders(1))+"个     共计 "+DoubleToStr(CountTrades(2,Symbol(),"",1),2)+"     均价 "+DoubleToStr(AvgPrice(Symbol(),2),Digits),270, 60);
  413.          if(CountTrades(1,Symbol(),"",0)+CountTrades(2,Symbol(),"",1)!=0)
  414.            {
  415.             if(跟踪距离!=0 && 均线跟踪开关0==1 && 跟踪品种==Symbol() && 跟踪周期==Period())
  416.                text("跟踪运行all",3,9,"Arial",clrRed,周期显示+"周期__"+跟踪周期显示0+"均线__"+(string)跟踪距离+"点__跟踪止损,运行中",270, 40);
  417.             else
  418.                text("跟踪未启动all",3,9,"Arial",clrDimGray,"均线跟踪止损  未启动",270, 40);
  419.             if(均线减仓开关0==1 && 减仓品种==Symbol() && 减仓周期==Period())
  420.               {
  421.                if(mark==0)
  422.                   text("减仓运行all",3,9,"Arial",clrRed,周期显示+"周期__"+减仓周期显示0+"均线__"+减仓仓位显示0+"减仓,运行中,",270, 20);
  423.                if(mark!=0)
  424.                   text("减仓运行all1",3,9,"Arial",clrRed,周期显示+"周期__"+减仓周期显示0+"均线__"+减仓仓位显示0+"减仓,已成功!",270, 20);
  425.               }
  426.             else
  427.                text("减仓未启动all",3,9,"Arial",clrDimGray,"均线减仓  未启动",270, 20);
  428.            }
  429.         }
  430.      }
  431.   }
  432. //+------------------------------------------------------------------+
  433. //|                         左侧显示                                 |
  434. //+------------------------------------------------------------------+
  435. void 显示_日期_时间_星期_品种_周期_点差()
  436.   {
  437.    ObjectDelete("日期");
  438.    ObjectDelete("北京时间");
  439.    ObjectDelete("品种+周期");
  440.    ObjectDelete("买价");
  441.    ObjectDelete("点差");
  442.    ObjectDelete("卖价");
  443.    int MarketSpread;
  444.    MarketSpread=(int)MarketInfo(Symbol(),MODE_SPREAD);
  445.    string week;
  446.    if(DayOfWeek()==0)
  447.       week="日";
  448.    if(DayOfWeek()==1)
  449.       week="一";
  450.    if(DayOfWeek()==2)
  451.       week="二";
  452.    if(DayOfWeek()==3)
  453.       week="三";
  454.    if(DayOfWeek()==4)
  455.       week="四";
  456.    if(DayOfWeek()==5)
  457.       week="五";
  458.    if(DayOfWeek()==6)
  459.       week="六";
  460.    text("日期", 0,12,"微软雅黑",clrAqua,TimeToStr(TimeLocal(), TIME_DATE)+"  星期 "+week,90,0);
  461.    text("北京时间", 0,48,"微软雅黑",clrAqua,TimeToStr(TimeLocal(), TIME_MINUTES|TIME_SECONDS),0,7);
  462.    text("品种+周期", 0,24,"Arial",clrDodgerBlue,Symbol()+"    "+周期显示,0, 90);
  463.    text("买价", 0,18,"Arial",clrRed,DoubleToStr(Ask,Digits),0, 130);
  464.    text("点差", 0,18,"Arial",Yellow,(string)MarketSpread,0, 160);
  465.    text("卖价", 0,18,"Arial",0x00bb00,DoubleToStr(Bid,Digits),0, 190);
  466.   }
  467. //+------------------------------------------------------------------+
  468. //|                                                                  |
  469. //+------------------------------------------------------------------+
  470. void 按钮排版()
  471.   {
  472.    anniu1("closeall",C'255,255,255',90,75,"全部平仓",80);
  473.    anniu1("delgua",clrWhite,90,108,"删除挂单",80);
  474.    anniu("slm",clrWhite,90,141,"价格止损",80);
  475.    anniu("tpm",clrWhite,90,207,"价格止盈",80);

  476.    anniu1("close1/2",clrWhite,180,75,"平 1/2 仓",80);
  477.    anniu("dlpb",clrWhite,180,108,"独立平保",80);
  478.    anniu("dsslm",clrWhite,180,141,"点数止损",80);
  479.    anniu("dstpm",clrWhite,180,207,"点数止盈",80);

  480.    anniu1("close1/3",clrWhite,270,75,"平 1/3 仓",80);
  481.    anniu("jjpb",clrWhite,270,108,"均价平保",80);
  482.    anniu("jeslm",clrWhite,270,141,"金额止损",80);
  483.    anniu("jetpm",clrWhite,270,207,"金额止盈",80);

  484.    anniu1("gbgz",clrWhite,90,255,"关闭跟踪",80);
  485.    anniu("anniuma3",clrWhite,90,319,"跟踪止损",80);
  486.    anniu("anniuma2",clrWhite,90,352,"跟踪止损",80);
  487.    anniu("anniuma1",clrWhite,90,385,"跟踪止损",80);

  488.    anniu2("1/2_仓位",C'110,110,110',C'0,40,0',90,288,"1/2仓位 ",80,25);
  489.    anniu2("2/3_仓位",C'110,110,110',C'0,40,0',180,288,"2/3仓位 ",80,25);
  490.    anniu2("1/3_仓位",C'110,110,110',C'0,40,0',270,288,"1/3仓位 ",80,25);

  491.    anniu1("buy_stop",clrWhite,180,431,"Buy Stop",80);
  492.    anniu1("buy_limit",clrWhite,180,498,"Buy Limit",80);
  493.    anniu1("sell_limit",clrWhite,90,431,"Sell Limit",80);
  494.    anniu1("sell_stop",clrWhite,90,498,"Sell Stop",80);

  495.    anniu("anniuma3_减仓",clrWhite,270,319,"均线减仓",80);
  496.    anniu("anniuma2_减仓",clrWhite,270,352,"均线减仓",80);
  497.    anniu("anniuma1_减仓",clrWhite,270,385,"均线减仓",80);
  498.    anniu1("关闭减仓",clrWhite,270,255,"关闭减仓",80);
  499.    anniu1("buy",clrWhite,270,431,"现  价  买",80);
  500.    anniu1("sell",clrWhite,270,498,"现  价  卖",80);

  501.    anniu2("A",clrWhite,C'0,40,0',270,20,"A",50,45);
  502.    anniu2("B",clrWhite,C'0,40,0',210,20,"B",50,45);
  503.    anniu2("C",clrWhite,C'0,40,0',150,20,"C",50,45);
  504.    anniu2("T",clrWhite,C'0,40,0',90,20,"Total",80,45);
  505.   }
  506. //+------------------------------------------------------------------+
  507. //|                               按钮   绿色                        |
  508. //+------------------------------------------------------------------+
  509. void anniu(string name,color yanse,int x,int y,string text,int changdu=0)
  510.   {
  511.    ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
  512.    ObjectSetInteger(0,name,OBJPROP_COLOR,yanse);//字颜色
  513.    ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrDarkGreen);//按钮颜色
  514.    ObjectSet(name,OBJPROP_BACK,false);//透明
  515.    ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);//X位置
  516.    ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//Y位置
  517.    if(changdu==0)//按钮自适应长度
  518.      {
  519.       int as=StringLen(text);
  520.       ObjectSetInteger(0,name,OBJPROP_XSIZE,as*20);
  521.      }
  522.    else
  523.       ObjectSetInteger(0,name,OBJPROP_XSIZE,changdu);
  524.    ObjectSetInteger(0,name,OBJPROP_YSIZE,25);//按钮高度
  525.    ObjectSetString(0,name,OBJPROP_FONT,"Arial");//字体
  526.    ObjectSetString(0,name,OBJPROP_TEXT,text);//按钮文字
  527.    ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);//字号
  528. //ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrOrange);//按钮边框颜色
  529.    ObjectSet(name,OBJPROP_BORDER_TYPE,BORDER_FLAT);//弹起???
  530.    ObjectSet(name,OBJPROP_STATE,false);//是否凹
  531.    ObjectSet(name,OBJPROP_HIDDEN,true);
  532.    ObjectSetInteger(0,name,OBJPROP_CORNER,1);
  533.   }
  534. //+------------------------------------------------------------------+
  535. //|                              按钮1    红色                       |
  536. //+------------------------------------------------------------------+
  537. void anniu1(string name,color yanse,int x,int y,string text,int changdu=0)
  538.   {
  539.    ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
  540.    ObjectSetInteger(0,name,OBJPROP_COLOR,yanse);
  541.    ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrMaroon);
  542.    ObjectSet(name,OBJPROP_BACK,false);
  543.    ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
  544.    ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
  545.    if(changdu==0)
  546.      {
  547.       int as=StringLen(text);
  548.       ObjectSetInteger(0,name,OBJPROP_XSIZE,as*20);
  549.      }
  550.    else
  551.       ObjectSetInteger(0,name,OBJPROP_XSIZE,changdu);
  552.    ObjectSetInteger(0,name,OBJPROP_YSIZE,25);
  553.    ObjectSetString(0,name,OBJPROP_FONT,"Arial");
  554.    ObjectSetString(0,name,OBJPROP_TEXT,text);
  555.    ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
  556. //ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrOrange);
  557.    ObjectSet(name,OBJPROP_BORDER_TYPE,BORDER_FLAT);
  558.    ObjectSet(name,OBJPROP_STATE,false);//是否凹
  559.    ObjectSet(name,OBJPROP_HIDDEN,true);
  560.    ObjectSetInteger(0,name,OBJPROP_CORNER,1);
  561.   }
  562. //+------------------------------------------------------------------+
  563. //|                               按钮2  色1,色2,长,高            |
  564. //+------------------------------------------------------------------+
  565. void anniu2(string name,color yanse1,color yanse2,int x,int y,string text,int changdu,int gaodu)
  566.   {
  567.    ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
  568.    ObjectSetInteger(0,name,OBJPROP_COLOR,yanse1);//字颜色
  569.    ObjectSetInteger(0,name,OBJPROP_BGCOLOR,yanse2);//按钮颜色
  570.    ObjectSet(name,OBJPROP_BACK,false);//透明
  571.    ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);//X位置
  572.    ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//Y位置
  573.    ObjectSetInteger(0,name,OBJPROP_XSIZE,changdu);
  574.    ObjectSetInteger(0,name,OBJPROP_YSIZE,gaodu);
  575.    ObjectSetString(0,name,OBJPROP_FONT,"Arial");//字体
  576.    ObjectSetString(0,name,OBJPROP_TEXT,text);//按钮文字
  577.    ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);//字号
  578. //ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrOrange);//按钮边框颜色
  579.    ObjectSetInteger(0,name,OBJPROP_BORDER_TYPE,BORDER_FLAT);//弹起???
  580.    ObjectSet(name,OBJPROP_STATE,false);//是否凹
  581.    ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);
  582.    ObjectSetInteger(0,name,OBJPROP_CORNER,1);
  583.   }
  584. //+------------------------------------------------------------------+
  585. //|                       文本框                                     |
  586. //+------------------------------------------------------------------+
  587. void shurukuang(string name, color yanse, int x, int y,int kuandu)
  588.   {
  589.    ObjectCreate(0,name,OBJ_EDIT,0,0,0) ;
  590.    ObjectSetInteger(0, name, OBJPROP_XDISTANCE,x) ;
  591.    ObjectSetInteger(0, name, OBJPROP_YDISTANCE,y) ;
  592.    ObjectSetInteger(0, name, OBJPROP_XSIZE, kuandu) ;
  593.    ObjectSetInteger(0, name, OBJPROP_YSIZE,25) ;
  594.    ObjectSetInteger(0, name, OBJPROP_FONTSIZE,11) ;
  595.    ObjectSetString(0,name,OBJPROP_FONT,"宋体");//字体
  596.    ObjectSetInteger(0, name, OBJPROP_ALIGN, ALIGN_CENTER) ;
  597.    ObjectSetInteger(0, name, OBJPROP_READONLY, false) ;
  598.    ObjectSetInteger(0, name, OBJPROP_CORNER,1) ;
  599.    ObjectSetInteger(0, name, OBJPROP_COLOR, clrWhite) ;
  600.    ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrDarkGreen);
  601.    ObjectSetInteger(0,name,OBJPROP_BGCOLOR,C'0,30,0');
  602.    ObjectSetInteger(0,name,OBJPROP_BACK,false);
  603.    ObjectSetString(0,name,OBJPROP_TEXT,"");
  604.   }

复制代码
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
47
 楼主| 发表于 2020-6-11 20:43 | 只看该作者
  1. //+------------------------------------------------------------------+
  2. //|                       TEXT                                   |
  3. //+------------------------------------------------------------------+
  4. void text(string name, int corner,int 字号,string 字体,color 颜色,string text,int x, int y)
  5.   {
  6.    ObjectCreate(0,name,OBJ_LABEL,0,0,0) ;
  7.    ObjectSetInteger(0,name,OBJPROP_CORNER, corner);
  8.    ObjectSetInteger(0,name,OBJPROP_FONTSIZE,字号);
  9.    ObjectSetString(0,name,OBJPROP_FONT,字体);
  10.    ObjectSetInteger(0,name,OBJPROP_COLOR,颜色);
  11.    ObjectSetString(0,name,OBJPROP_TEXT,text);
  12.    ObjectSetInteger(0, name, OBJPROP_XDISTANCE, x);
  13.    ObjectSetInteger(0, name, OBJPROP_YDISTANCE, y);
  14.   }
  15. //+------------------------------------------------------------------+
  16. //|                                                                  |
  17. //+------------------------------------------------------------------+
  18. void msg(void)
  19.   {
  20. #define MSG_PREFIX      ""
  21. #define MAX_VALUE    "999d hh:mm:ss"

  22.    int Right_Shift_from_Bar = 3;
  23.    int      DAY_SECONDS;
  24.    string   MAX_PADDING;
  25.    int      MAX_LENGTH;

  26.    DAY_SECONDS = PERIOD_D1 * 60;
  27.    MAX_PADDING = "";

  28.    int totalSpaces = StringLen(MSG_PREFIX + MAX_VALUE);
  29.    for(int i = (int)(totalSpaces*1.5 + 1); i > 0; i--)
  30.       MAX_PADDING = StringConcatenate(MAX_PADDING, " ");
  31.    MAX_LENGTH = StringLen(MAX_PADDING);

  32.    datetime barOpenTime    = Time[0];  // number of seconds elapsed from 00:00 January 1, 1970.
  33.    bool     hasHours    = (Period() > PERIOD_H1);  // need to display hours if timeframe is more than 1H
  34.    bool     hasDays        = (Period() > PERIOD_D1);  // need to display days left
  35.    datetime barCloseTime   = barOpenTime + Period()*60;
  36.    datetime leftUntilClose = barCloseTime - TimeCurrent();
  37.    string      msg            = "";
  38.    bool     exists         = false;
  39.    datetime objectX        = barOpenTime + Period()*60*Right_Shift_from_Bar;
  40.    string      fontName    = NULL;  // do not change the font

  41.    if(leftUntilClose <= 0)
  42.       leftUntilClose = 1;

  43.    if(hasDays)
  44.      {
  45.       msg = msg + (string)(leftUntilClose / DAY_SECONDS) + "d ";
  46.       leftUntilClose %= DAY_SECONDS;
  47.      }
  48.    msg   = msg + TimeToStr(leftUntilClose, TIME_SECONDS);

  49.    if(!hasHours)   // '!hasHours' and 'hasDays' can not be 'true' at the same time
  50.       msg = StringSubstr(msg, 3);   // strip "hh:" portion

  51. //msg = MSG_PREFIX + msg;

  52.    msg = StringSubstr(MAX_PADDING, (int)(MAX_LENGTH - StringLen(msg)*1.5)) + msg;

  53.    ObjectDelete("msg");
  54.    ObjectCreate("msg", OBJ_TEXT, 0, objectX, Bid);
  55.    ObjectSet("msg", OBJPROP_COLOR, Yellow);
  56.    ObjectSet("msg", OBJPROP_ANCHOR,ANCHOR_CENTER);
  57.    ObjectSetText("msg", msg+"_"+周期显示, 16, "宋体");

  58.    return;
  59.   }
  60. //+------------------------------------------------------------------+
  61. //|                                                                  |
  62. //+------------------------------------------------------------------+
  63. void 监测调试(void)
  64.   {
  65.    ObjectDelete("mark");
  66.    text("mark", 0,10,"宋体",clrDodgerBlue,"mark= "+IntegerToString(mark),1800, 0);

  67.    ObjectDelete("magic");
  68.    text("magic", 0,10,"宋体",clrDodgerBlue,"magic= "+IntegerToString(magic),2000, 0);

  69.    ObjectDelete("跟踪品种");
  70.    text("跟踪品种", 0,10,"宋体",clrDodgerBlue,"跟踪品种= "+跟踪品种,2200, 0);

  71.    ObjectDelete("减仓品种");
  72.    text("减仓品种", 0,10,"宋体",clrDodgerBlue,"减仓品种= "+减仓品种,2400, 0);

  73.    ObjectDelete("ma");
  74.    text("ma", 0,10,"宋体",clrDodgerBlue,"ma= "+IntegerToString(ma),2600, 0);

  75.    ObjectDelete("ma1");
  76.    text("ma1", 0,10,"宋体",clrDodgerBlue,"ma1= "+IntegerToString(ma1),2800, 0);

  77.    ObjectDelete("ma2");
  78.    text("ma2", 0,10,"宋体",clrDodgerBlue,"ma2= "+IntegerToString(ma2),3000, 0);

  79.    ObjectDelete("ma3");
  80.    text("ma3", 0,10,"宋体",clrDodgerBlue,"ma3= "+IntegerToString(ma3),3200, 0);

  81.    ObjectDelete("lotN");
  82.    text("lotN", 0,10,"宋体",clrDodgerBlue,"lotN= "+DoubleToString(lotN,5),3300, 0);

  83.    ObjectDelete("跟踪周期");
  84.    text("跟踪周期", 0,10,"宋体",clrDodgerBlue,"跟踪周期= "+IntegerToString(跟踪周期),1800, 30);

  85.    ObjectDelete("减仓周期");
  86.    text("减仓周期", 0,10,"宋体",clrDodgerBlue,"减仓周期= "+IntegerToString(减仓周期),2000, 30);

  87.    ObjectDelete("duo");
  88.    text("duo", 0,10,"宋体",clrDodgerBlue,"duo= "+DoubleToString(duo,Digits),2200, 30);

  89.    ObjectDelete("kong");
  90.    text("kong", 0,10,"宋体",clrDodgerBlue,"kong= "+DoubleToString(kong,Digits),2400, 30);

  91.    ObjectDelete("dstp1");
  92.    text("dstp1", 0,10,"宋体",clrDodgerBlue,"dstp1= "+DoubleToString(dstp1,Digits),2600, 30);

  93.    ObjectDelete("dstp2");
  94.    text("dstp2", 0,10,"宋体",clrDodgerBlue,"dstp2= "+DoubleToString(dstp2,Digits),2800, 30);

  95.    ObjectDelete("AvgPriceX");
  96.    text("AvgPriceX", 0,10,"宋体",clrDodgerBlue,"AvgPriceX= "+DoubleToString(AvgPriceX,Digits),3000, 30);

  97.    ObjectDelete("counttradesX");
  98.    text("counttradesX", 0,10,"宋体",clrDodgerBlue,"counttradesX= "+DoubleToString(counttradesX,Digits),3200, 30);

  99.    ObjectDelete("均线跟踪开关0");
  100.    text("均线跟踪开关0", 0,10,"宋体",clrDodgerBlue,"均线跟踪开关0= "+IntegerToString(均线跟踪开关0),1800, 60);
  101.    ObjectDelete("均线跟踪开关1");
  102.    text("均线跟踪开关1", 0,10,"宋体",clrDodgerBlue,"均线跟踪开关1= "+IntegerToString(均线跟踪开关1),2000, 60);
  103.    ObjectDelete("均线跟踪开关2");
  104.    text("均线跟踪开关2", 0,10,"宋体",clrDodgerBlue,"均线跟踪开关2= "+IntegerToString(均线跟踪开关2),2200, 60);
  105.    ObjectDelete("均线跟踪开关3");
  106.    text("均线跟踪开关3", 0,10,"宋体",clrDodgerBlue,"均线跟踪开关3= "+IntegerToString(均线跟踪开关3),2400, 60);

  107.    ObjectDelete("均线减仓开关0");
  108.    text("均线减仓开关0", 0,10,"宋体",clrDodgerBlue,"均线减仓开关0= "+IntegerToString(均线减仓开关0),2600, 60);
  109.    ObjectDelete("均线减仓开关1");
  110.    text("均线减仓开关1", 0,10,"宋体",clrDodgerBlue,"均线减仓开关1= "+IntegerToString(均线减仓开关1),2800, 60);
  111.    ObjectDelete("均线减仓开关2");
  112.    text("均线减仓开关2", 0,10,"宋体",clrDodgerBlue,"均线减仓开关2= "+IntegerToString(均线减仓开关2),3000, 60);
  113.    ObjectDelete("均线减仓开关3");
  114.    text("均线减仓开关3", 0,10,"宋体",clrDodgerBlue,"均线减仓开关3= "+IntegerToString(均线减仓开关3),3200, 60);

  115.    ObjectDelete("ma0");
  116.    text("ma0", 0,10,"宋体",clrDodgerBlue,"ma0= "+IntegerToString(ma0),1800, 90);
  117.    ObjectDelete("ma111111");
  118.    text("ma111111", 0,10,"宋体",clrDodgerBlue,"ma111111= "+IntegerToString(ma111111),2000, 90);
  119.    ObjectDelete("ma222222");
  120.    text("ma222222", 0,10,"宋体",clrDodgerBlue,"ma222222= "+IntegerToString(ma222222),2200, 90);
  121.    ObjectDelete("ma333333");
  122.    text("ma333333", 0,10,"宋体",clrDodgerBlue,"ma333333= "+IntegerToString(ma333333),2400, 90);

  123.    ObjectDelete("ma0gz");
  124.    text("ma0gz", 0,10,"宋体",clrDodgerBlue,"ma0gz= "+IntegerToString(ma0gz),2600, 90);
  125.    ObjectDelete("ma111111gz");
  126.    text("ma111111gz", 0,10,"宋体",clrDodgerBlue,"ma111111gz= "+IntegerToString(ma111111gz),2800, 90);
  127.    ObjectDelete("ma222222gz");
  128.    text("ma222222gz", 0,10,"宋体",clrDodgerBlue,"ma222222gz= "+IntegerToString(ma222222gz),3000, 90);
  129.    ObjectDelete("ma333333gz");
  130.    text("ma333333gz", 0,10,"宋体",clrDodgerBlue,"ma333333gz= "+IntegerToString(ma333333gz),3200, 90);
  131.   }
  132. //+------------------------------------------------------------------+
复制代码
太阳每天升起,每天都是新的一天。

12

主题

2192

积分

2

精华

中级操盘手

金钱
2192 美元
权重
0
48
发表于 2020-6-11 22:27 | 只看该作者
挂单的EA尽量不要混用!!
以下是挂单的代码:
//--- sell conditions
   if(cci2>100&&cci3<cci2&&cci<cci2&&sellon>0&&kdj>KDJ_H&&iClose(NULL,PERIOD_H4,0)>ma60)//&&kdj<kdj_MODE_SIGNAL&&kdj1>kdj_MODE_SIGNAL
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,2,Bid+SLTP*Point*10,0,"cci sell",MAGICMA,0,Red);
      
      if(res>0)
       { OrderSend(Symbol(),OP_SELLLIMIT,limtlot1,Bid+selllimtpip*Point*10,20,Bid+SLTP*Point*10,0,"cci selllimt",MAGICMA,0,Red);
         OrderSend(Symbol(),OP_SELLLIMIT,limtlot2,Bid+selllimtpip*Point*10*2,20,Bid+SLTP*Point*10,0,"cci selllimt",MAGICMA,0,Red);
         OrderSend(Symbol(),OP_SELLLIMIT,limtlot3,Bid+selllimtpip*Point*10*3,20,Bid+SLTP*Point*10,0,"cci selllimt",MAGICMA,0,Red);
        }
      return;
     }
//--- buy conditions
   if(cci2<-100&&cci3<cci2&&cci>cci2&&buyon>0&&kdj<KDJ_L&&iClose(NULL,PERIOD_H4,0)<ma60)//&&kdj>kdj_MODE_SIGNAL&&kdj1<kdj_MODE_SIGNAL
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,2,Ask-SLTP*Point*10,0,"cci buy",MAGICMA,0,Blue);
       if(res>0)
       { OrderSend(Symbol(),OP_BUYLIMIT,limtlot1,Ask-buylimtpip*Point*10,20,Ask-SLTP*Point*10,0,"cci buylimt",MAGICMA,0,Blue);
         OrderSend(Symbol(),OP_BUYLIMIT,limtlot2,Ask-buylimtpip*Point*10*2,20,Ask-SLTP*Point*10,0,"cci buylimt",MAGICMA,0,Blue);
         OrderSend(Symbol(),OP_BUYLIMIT,limtlot3,Ask-buylimtpip*Point*10*3,20,Ask-SLTP*Point*10,0,"cci buylimt",MAGICMA,0,Blue);
         }

7

主题

3481

积分

0

精华

中级操盘手

金钱
3481 美元
权重
0
49
发表于 2020-6-12 09:44 | 只看该作者

万分感谢 研究研究去

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
50
 楼主| 发表于 2020-6-12 10:49 | 只看该作者
hpy6666 发表于 2020-6-11 22:27
挂单的EA尽量不要混用!!
以下是挂单的代码:
//--- sell conditions

谢谢,准备把挂单部分补上
太阳每天升起,每天都是新的一天。

1106

主题

2万

积分

17

精华

操盘专家

金钱
24316 美元
权重
251
51
 楼主| 发表于 2020-6-12 15:05 | 只看该作者
太阳每天升起,每天都是新的一天。

40

主题

1万

积分

0

精华

操盘专家

金钱
19489 美元
权重
0
52
发表于 2020-6-12 16:09 | 只看该作者
稳稳哒!
价格总是沿最小阻力方向行进。
等待市场不可避免的涨跌。
我不奢望跨过7英尺高的跨栏,我四周寻找1英尺杆轻轻松松迈过。

15

主题

1万

积分

0

精华

操盘专家

金钱
15204 美元
权重
0
53
发表于 2020-6-12 17:46 来自手机 | 只看该作者
围观~~~

0

主题

9299

积分

0

精华

操盘专家

金钱
9299 美元
权重
0
54
发表于 2020-6-15 10:34 | 只看该作者
您需要登录后才可以回帖 登录 | 快捷注册(禁q号)

本版积分规则

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

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

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

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