EA能在其中一张图表交易多品种吗? - 页 2

 
CHARLES_CHUI666 #:
大哥们 没人能指导一下吗 

用这种方式写。想要在一个EA里面交易多少个品种都没有问题。


// 28大交易货币对

enum TradeSymbol{ 
EURUSD = 0 ,
EURGBP = 1 ,
EURJPY = 2 ,
EURAUD = 3 ,
EURNZD = 4 ,
EURCHF = 5 ,
EURCAD = 6 ,
GBPUSD = 7 ,
USDJPY = 8 ,
AUDUSD = 9 ,
USDCAD = 10 ,
USDCHF = 11 ,
NZDUSD = 12 ,
GBPJPY = 13 ,
GBPCAD = 14 ,
GBPAUD = 15 ,
GBPCHF = 16 ,
GBPNZD = 17 ,
AUDJPY = 18 ,
CADJPY = 19 ,
CHFJPY = 20 ,
NZDJPY = 21 ,
AUDCAD = 22 ,
AUDCHF = 23 ,
AUDNZD = 24 ,
CADCHF = 25 ,
NZDCAD = 26 ,
NZDCHF = 27 
};

// 交易信号数据结构
struct TradeSignalInfoStruct{
      datetime       log_time;     // 信号时间
      int            signal;       // 交易方向
      string         symbol;       // 交易品种
      int            lots;         // 手数
      int            point;        // 止盈止损点数
      double         price;        // 开仓价格
      //bool           trade=false;  // 信号是否开仓
   };

TradeSignalInfoStruct TradeSignalInfo[28];



struct TradeInfoStruct{

   string symbol;           //交易货币对

   double mod;              //价格精确度转化

   double more_point;       //止盈增点

   

   bool   buy_trade;        //是否有买入持仓

   bool   buy_auto;         //自动交易开关  

   double buy_price;        //买入价格

   double buy_stoploss;     //买入固定止损价位

   double buy_lots;         //买入开仓手数

   double buy_point;        //买入开仓点数

   int    buy_book_num;     //买入马丁挂单数

   bool   move_buy_profit;  //买单移动止盈开关

   int    buy_delay;        //买单延迟

   int    buy_counter;      //买单延迟计时器

   int    buy_num;          //买单持仓单数

   

   bool   sell_trade;       //是否有卖出持仓 

   bool   sell_auto;        //自动交易开关 

   double sell_price;       //卖出价格

   double sell_stoploss;    //卖出固定止损价位

   double sell_lots;        //卖出开仓手数

   double sell_point;       //卖出开仓点数

   int    sell_book_num;    //卖出马丁挂单数

   bool   move_sell_profit; //卖单移动止盈开关

   int    sell_delay;       //卖单延迟

   int    sell_counter;     //卖单计时器

   int    sell_num;         //卖单持仓单数


};

TradeInfoStruct TradeInfo[28];


void Trade(int num){

   

   //信号时间在10分钟内为有效,开仓价误差小于3个点

   if(TimeDiff(TimeCurrent(),TradeSignalInfo[num].log_time)<600){

      switch(TradeSignalInfo[num].signal){

         // 买入方向

         case 0:{ if(!TradeInfo[num].buy_trade && CalculateCurrentOrders(TradeSignalInfo[num].symbol,"至简EA-BUY")==0)BuyOption(num);break;}

         // 卖出方向

         case 1:{ if(!TradeInfo[num].sell_trade && CalculateCurrentOrders(TradeSignalInfo[num].symbol,"至简EA-SELL")==0)SellOption(num);break;}

         // 买入平仓

         case 2:{ CloseBuyOrder(TradeSignalInfo[num].symbol);break;}

         // 卖出平仓

         case 3:{ CloseSellOrder(TradeSignalInfo[num].symbol);break;}

      }

   }

}




 
yunyinyue #:

用这种方式写。想要在一个EA里面交易多少个品种都没有问题。


// 28大交易货币对

enum TradeSymbol{ 
EURUSD = 0 ,
EURGBP = 1 ,
EURJPY = 2 ,
EURAUD = 3 ,
EURNZD = 4 ,
EURCHF = 5 ,
EURCAD = 6 ,
GBPUSD = 7 ,
USDJPY = 8 ,
AUDUSD = 9 ,
USDCAD = 10 ,
USDCHF = 11 ,
NZDUSD = 12 ,
GBPJPY = 13 ,
GBPCAD = 14 ,
GBPAUD = 15 ,
GBPCHF = 16 ,
GBPNZD = 17 ,
AUDJPY = 18 ,
CADJPY = 19 ,
CHFJPY = 20 ,
NZDJPY = 21 ,
AUDCAD = 22 ,
AUDCHF = 23 ,
AUDNZD = 24 ,
CADCHF = 25 ,
NZDCAD = 26 ,
NZDCHF = 27 
};

// 交易信号数据结构
struct TradeSignalInfoStruct{
      datetime       log_time;     // 信号时间
      int            signal;       // 交易方向
      string         symbol;       // 交易品种
      int            lots;         // 手数
      int            point;        // 止盈止损点数
      double         price;        // 开仓价格
      //bool           trade=false;  // 信号是否开仓
   };

TradeSignalInfoStruct TradeSignalInfo[28];



struct TradeInfoStruct{

   string symbol;           //交易货币对

   double mod;              //价格精确度转化

   double more_point;       //止盈增点

   

   bool   buy_trade;        //是否有买入持仓

   bool   buy_auto;         //自动交易开关  

   double buy_price;        //买入价格

   double buy_stoploss;     //买入固定止损价位

   double buy_lots;         //买入开仓手数

   double buy_point;        //买入开仓点数

   int    buy_book_num;     //买入马丁挂单数

   bool   move_buy_profit;  //买单移动止盈开关

   int    buy_delay;        //买单延迟

   int    buy_counter;      //买单延迟计时器

   int    buy_num;          //买单持仓单数

   

   bool   sell_trade;       //是否有卖出持仓 

   bool   sell_auto;        //自动交易开关 

   double sell_price;       //卖出价格

   double sell_stoploss;    //卖出固定止损价位

   double sell_lots;        //卖出开仓手数

   double sell_point;       //卖出开仓点数

   int    sell_book_num;    //卖出马丁挂单数

   bool   move_sell_profit; //卖单移动止盈开关

   int    sell_delay;       //卖单延迟

   int    sell_counter;     //卖单计时器

   int    sell_num;         //卖单持仓单数


};

TradeInfoStruct TradeInfo[28];


void Trade(int num){

   

   //信号时间在10分钟内为有效,开仓价误差小于3个点

   if(TimeDiff(TimeCurrent(),TradeSignalInfo[num].log_time)<600){

      switch(TradeSignalInfo[num].signal){

         // 买入方向

         case 0:{ if(!TradeInfo[num].buy_trade && CalculateCurrentOrders(TradeSignalInfo[num].symbol,"至简EA-BUY")==0)BuyOption(num);break;}

         // 卖出方向

         case 1:{ if(!TradeInfo[num].sell_trade && CalculateCurrentOrders(TradeSignalInfo[num].symbol,"至简EA-SELL")==0)SellOption(num);break;}

         // 买入平仓

         case 2:{ CloseBuyOrder(TradeSignalInfo[num].symbol);break;}

         // 卖出平仓

         case 3:{ CloseSellOrder(TradeSignalInfo[num].symbol);break;}

      }

   }

}




兄弟主要是1:我每个货币对的交易条件都不一样 2.我的目的是要当前图表的EA读取其他品种的图表的每一个价格跳动去交易其他品种,而不是根据当前加载的图表交易其他品种哦。

 
CHARLES_CHUI666 #:

兄弟主要是1:我每个货币对的交易条件都不一样 2.我的目的是要当前图表的EA读取其他品种的图表的每一个价格跳动去交易其他品种,而不是根据当前加载的图表交易其他品种哦。

没看懂那就算了
 
CHARLES_CHUI666 #:

兄弟主要是1:我每个货币对的交易条件都不一样 2.我的目的是要当前图表的EA读取其他品种的图表的每一个价格跳动去交易其他品种,而不是根据当前加载的图表交易其他品种哦。

会有一种K线窗口能接收全部商品的报价跳动吗?


你应当向EA的开发者提出要求,而不是在这里抱怨。

 
lap cheung #:

你的逻辑能力连小学生都不如。

会有一种K线窗口能接收全部商品的报价跳动吗?


你应当向EA的开发者提出要求,而不是在这里抱怨。

首先确实我是不知道有没有,你直接说没有就行。

其次,问题已经得到解。

再次,谢谢你的指正。

 
CHARLES_CHUI666:
如题,因为我准备交易15种以上货币对,但如果每个图表都加载EA的话相当麻烦,修改也是。我想问各位大佬,MT4和MT5能把所有EA汇总在一个总的EA,然后只加载一个任意品种和周期的图表而达到同时加载了20个不同品种的图表的效果吗?

建一个数组 

string symbols []={"eurusd", "eurusd" , "eurusd" , "eurusd" , "eurusd" };

for  遍历数组

{

symbol = symbols[i]

//----


以下是你的代码




}

 
【如何防止机器人误判】讨论代码时请使用代码表述功能
【如何防止机器人误判】讨论代码时请使用代码表述功能
  • 2023.06.13
  • www.mql5.com
大家好,我是官网版主。 官网内部有机器人辅助管理,目的是自动下架一些有误导性的内容。 内容过长,或同一个IP多次注册,容易导致机器人误判,而被无辜删帖。 如果您被无故删帖,我们对这种体验感到万分抱歉。 为了防止机器人误判,请在讨论代码的时候使用代码表述功能。(如图) 感谢您的配合...
 
CHARLES_CHUI666:
如题,因为我准备交易15种以上货币对,但如果每个图表都加载EA的话相当麻烦,修改也是。我想问各位大佬,MT4和MT5能把所有EA汇总在一个总的EA,然后只加载一个任意品种和周期的图表而达到同时加载了20个不同品种的图表的效果吗?

EA可以同时处理不同的货币对.

 
这个问题有点复杂,免费的怕是没有人愿意搞
 
Xian Qin Ceng #:
这个问题有点复杂,免费的怕是没有人愿意搞

已解决 也不是太麻烦 用遍历