客服热线:18391752892

一款多货币对EA,请高手给上中文详细注释,附上源码

   日期:2019-01-12     浏览:909    
马上注册,结交更多好友,下载更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 #property copyright 5美金炒外汇黄金,白送的http://goo.gl/sGDvh
#property link      http://www.forex4you.cn/?affid=491fbb3
#import stdlib.ex4
   string ErrorDescription(int a0);
#import
extern string HeadLine = 外汇投资开户qq63511088
extern string BuyBlock = 无交易员美分账户开户http://www.forex4you.cn/?affid=491fbb3群84446947
extern bool Trade_on_all_currencies = TRUE;
extern int Trade_on_Timeframe = 60;
extern double LotSize = 0.1;
extern int Max_Spread_pips = 10;
extern int Max_StopLevel_pips = 30;
extern bool UseTrailingStop = TRUE;
extern int Trailing_Step = 15;
extern int Manual_Stop_Loss = 50;
extern int Take_Profit = 0;
extern int Slip_page = 2;
extern int MagicNumber = 19881;
extern int ADX.Period = 14;
extern int BB.Period = 20;
extern int BB.Deviation = 2;
extern int MA.Period = 20;
extern int MA.Method = 0;
extern int MA.Price = 0;
extern double SAR.Step = 0.02;
extern double SAR.Max = 0.2;
extern int SignalBar = 1;
string gsa_168[];
int gia_172[];
int g_slippage_176 = 0;
int gi_180 = 0;
int gi_184 = 0;
int gi_unused_188 = -1;
string gs_200;
int g_datetime_208 = 0;
int init() {
   int li_0;
   int li_4;
   if (Trade_on_all_currencies) {
     li_0 = f0_2();
     li_4 = f0_6();
     gs_200 = gs_200 + H1 Multitrader EA Loaded on + li_4 + of + li_0 + currency pairs.n
   } else {
     ArrayResize(gsa_168, 1);
     gsa_168[0] = Symbol();
     gs_200 = gs_200 + H1 Multitrader EA Loaded only on + gsa_168[0]
     + n
   }
   gs_200 = gs_200 + H1 Multitrader EA Loaded on + Trade_on_Timeframe + m. time frame.n
   if (IsTradeAllowed()) gs_200 = gs_200 + @ Live Trading Enabled @
   if (!IsTradeAllowed()) gs_200 = gs_200 + @ alerts Mode only @
   ArrayResize(gia_172, ArraySize(gsa_168));
   return (0);
}
int deinit() {
   Comment(
   gs_200 =
   return (0);
}
int start() {
ads();
   string ls_unused_0;
   double icustom_12;
   double icustom_20;
   if (f0_0(10)) {
     for (int index_8 = 0; index_8 ArraySize(gsa_168); index_8++) {
       if (MarketInfo(gsa_168[index_8], MODE_DIGITS) == 5.0 || MarketInfo(gsa_168[index_8], MODE_DIGITS) == 3.0) {
         g_slippage_176 = 10 * Slip_page;
         gi_180 = 10 * Manual_Stop_Loss;
         gi_184 = 10 * Take_Profit;
       } else {
         g_slippage_176 = Slip_page;
         gi_180 = Manual_Stop_Loss;
         gi_184 = Take_Profit;
       }
       Comment(gs_200
       + n Scanning + gsa_168[index_8] + , period: + Trade_on_Timeframe + min.
       icustom_12 = iCustom(gsa_168[index_8], Trade_on_Timeframe, Momentum Indicator , ADX.Period, BB.Period, BB.Deviation, MA.Period, MA.Method, MA.Price, SAR.Step, SAR.Max,
         0, SignalBar);
       icustom_20 = iCustom(gsa_168[index_8], Trade_on_Timeframe, Momentum Indicator , ADX.Period, BB.Period, BB.Deviation, MA.Period, MA.Method, MA.Price, SAR.Step, SAR.Max,
         1, SignalBar);
       if (icustom_12 0.0 icustom_12 != EMPTY_VALUE) {
         f0_7(OP_SELL, gsa_168[index_8]);
         if (!f0_3(-1, gsa_168[index_8])) f0_4( 外汇投资qq63511088 , gsa_168[index_8]);
         if (gia_172[index_8] != 0) {
           alert(gsa_168[index_8] +  BUY Signal @ + DoubleToStr(MarketInfo(gsa_168[index_8], MODE_ASK), MarketInfo(gsa_168[index_8], MODE_DIGITS)));
           gia_172[index_8] = 0;
         }
       }
       if (icustom_20 0.0 icustom_20 != EMPTY_VALUE) {
         f0_7(OP_BUY, gsa_168[index_8]);
         if (!f0_3(-1, gsa_168[index_8])) f0_5( 外汇投资qq63511088 , gsa_168[index_8]);
         if (gia_172[index_8] != 1) {
           alert(gsa_168[index_8] +  SELL Signal @ + DoubleToStr(MarketInfo(gsa_168[index_8], MODE_BID), MarketInfo(gsa_168[index_8], MODE_DIGITS)));
           gia_172[index_8] = 1;
         }
       }
     }
   }
   f0_1();
   Comment(gs_200);
   return (0);
}
int f0_6() {
   string lsa_0[];
   int li_4;
   int li_8;
   for (int index_12 = 0; index_12 ArraySize(gsa_168); index_12++) {
     if (MarketInfo(gsa_168[index_12], MODE_DIGITS) == 3.0 || MarketInfo(gsa_168[index_12], MODE_DIGITS) == 5.0) {
       li_4 = 10 * Max_Spread_pips;
       li_8 = 10 * Max_StopLevel_pips;
     } else {
       li_4 = Max_Spread_pips;
       li_8 = Max_StopLevel_pips;
     }
     if (MarketInfo(gsa_168[index_12], MODE_SPREAD) = li_4 MarketInfo(gsa_168[index_12], MODE_STOPLEVEL) = li_8 MarketInfo(gsa_168[index_12], MODE_PROFITCALCMODE) == 0.0
       StringFind(gsa_168[index_12], XAU ) 0 StringFind(gsa_168[index_12], XAG ) 0) {
       ArrayResize(lsa_0, ArraySize(lsa_0) + 1);
       lsa_0[ArraySize(lsa_0) - 1] = gsa_168[index_12];
     }
   }
   ArrayResize(gsa_168, ArraySize(lsa_0));
   for (int index_16 = 0; index_16 ArraySize(lsa_0); index_16++) gsa_168[index_16] = lsa_0[index_16];
   ArrayResize(lsa_0, 0);
   return (ArraySize(gsa_168));
}
void f0_1() {
   int li_0;
   if (Trailing_Step = 0 || UseTrailingStop == FALSE) return;
   for (int pos_4 = OrdersTotal() - 1; pos_4 pos_4--) {
     if (OrderSelect(pos_4, SELECT_BY_POS, MODE_TRADES) OrderMagicNumber() == MagicNumber) {
       if (MarketInfo(OrderSymbol(), MODE_DIGITS) == 5.0 || MarketInfo(OrderSymbol(), MODE_DIGITS) == 3.0) li_0 = 10 * Trailing_Step;
       else li_0 = Trailing_Step;
       if (MarketInfo(OrderSymbol(), MODE_STOPLEVEL) li_0) li_0 = MarketInfo(OrderSymbol(), MODE_STOPLEVEL);
       if (OrderType() == OP_BUY MarketInfo(OrderSymbol(), MODE_BID) OrderOpenPrice() + li_0 * MarketInfo(OrderSymbol(), MODE_POINT)) {
         if (OrderStopLoss() OrderOpenPrice()) {
           if (!(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Yellow))) break;
           Print(OrderSymbol(), Error modifying buy trade , OrderTicket(), . Error: , ErrorDescription(GetLastError()));
           return;
         }
         if (MarketInfo(OrderSymbol(), MODE_BID) - OrderStopLoss() 2.0 * (MarketInfo(OrderSymbol(), MODE_POINT) * li_0))
           if (!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss() + MarketInfo(OrderSymbol(), MODE_POINT) * li_0, OrderTakeProfit(), 0, Yellow)) Print(OrderSymbol(), Error modifying buy trade , OrderTicket(), . Error: , ErrorDescription(GetLastError()));
       }
       if (OrderType() == OP_SELL MarketInfo(OrderSymbol(), MODE_ASK) OrderOpenPrice() - li_0 * MarketInfo(OrderSymbol(), MODE_POINT)) {
         if (OrderStopLoss() OrderOpenPrice() || OrderStopLoss() MarketInfo(OrderSymbol(), MODE_POINT)) {
           if (!(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Yellow))) break;
           Print(OrderSymbol(), Error modifying sell trade , OrderTicket(), . Error: , ErrorDescription(GetLastError()));
           return;
         }
         if (OrderStopLoss() - MarketInfo(OrderSymbol(), MODE_ASK) 2.0 * (MarketInfo(OrderSymbol(), MODE_POINT) * li_0))
           if (!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss() - MarketInfo(OrderSymbol(), MODE_POINT) * li_0, OrderTakeProfit(), 0, Yellow)) Print(OrderSymbol(), Error modifying sell trade , OrderTicket(), . Error: , ErrorDescription(GetLastError()));
       }
     }
   }
}
int f0_4(string a_comment_0, string a_symbol_8) {
   double price_24;
   double price_32;
   int ticket_16 = -1;
   int count_20 = 0;
   if (IsTradeContextBusy()) {
     Print( Warning: Trade Context Busy!nOrders can not be executed
     return (0);
   }
   while (ticket_16 = 0 count_20 5) {
     RefreshRates();
     price_32 = MarketInfo(a_symbol_8, MODE_ASK) + gi_184 * MarketInfo(a_symbol_8, MODE_POINT);
     if (price_32 MarketInfo(a_symbol_8, MODE_BID) + MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT)) price_32 = MarketInfo(a_symbol_8, MODE_BID) + MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT);
     if (gi_184 MarketInfo(a_symbol_8, MODE_POINT)) price_32 = 0;
     price_24 = iLow(a_symbol_8, Trade_on_Timeframe, SignalBar);
     if (MarketInfo(a_symbol_8, MODE_ASK) - price_24 gi_180 * MarketInfo(a_symbol_8, MODE_POINT)) price_24 = MarketInfo(a_symbol_8, MODE_ASK) - gi_180 * MarketInfo(a_symbol_8, MODE_POINT);
     if (price_24 MarketInfo(a_symbol_8, MODE_BID) - MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT)) price_24 = MarketInfo(a_symbol_8, MODE_BID) - MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT);
     if (!IsTradeAllowed()) return (0);
     ticket_16 = OrderSend(a_symbol_8, OP_BUY, LotSize, MarketInfo(a_symbol_8, MODE_ASK), g_slippage_176, 0, 0, a_comment_0, MagicNumber, 0, Blue);
     if (GetLastError() == 132) {
       Print(a_symbol_8, Unable to open buy trade! Market is CLOSED!
       return (0);
     }
     if (ticket_16 = 0) Sleep(500);
     count_20++;
   }
   if (ticket_16 0 OrderSelect(ticket_16, SELECT_BY_TICKET)) {
     if (!(price_24 0.0 || price_32 0.0)) return (1);
     while (!OrderModify(OrderTicket(), OrderOpenPrice(), price_24, price_32, 0, CLR_NONE) count_20 10) {
       Print(a_symbol_8, Unable to set SL/TP! Error: , ErrorDescription(GetLastError()));
       Print( Ask: + MarketInfo(a_symbol_8, MODE_ASK), SL: , price_24, TP: , price_32);
       count_20++;
       Sleep(500);
     }
     return (1);
   }
   Print(a_symbol_8, Unable to open buy trade! Error: , ErrorDescription(GetLastError()));
   return (0);
}
int f0_5(string a_comment_0, string a_symbol_8) {
   double price_24;
   double price_32;
   int ticket_16 = -1;
   int count_20 = 0;
   if (IsTradeContextBusy()) {
     Print( Warning: Trade Context Busy!nOrders can not be executed
     return (0);
   }
   while (ticket_16 = 0 count_20 5) {
     RefreshRates();
     price_32 = MarketInfo(a_symbol_8, MODE_BID) - gi_184 * MarketInfo(a_symbol_8, MODE_POINT);
     if (price_32 MarketInfo(a_symbol_8, MODE_ASK) - MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT)) price_32 = MarketInfo(a_symbol_8, MODE_ASK) - MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT);
     if (gi_184 MarketInfo(a_symbol_8, MODE_POINT)) price_32 = 0;
     price_24 = iHigh(a_symbol_8, Trade_on_Timeframe, SignalBar);
     if (price_24 - MarketInfo(a_symbol_8, MODE_BID) gi_180 * MarketInfo(a_symbol_8, MODE_POINT)) price_24 = MarketInfo(a_symbol_8, MODE_BID) + gi_180 * MarketInfo(a_symbol_8, MODE_POINT);
     if (price_24 0.0 price_24 MarketInfo(a_symbol_8, MODE_ASK) + MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT)) price_24 = MarketInfo(a_symbol_8, MODE_ASK) + MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT);
     if (!IsTradeAllowed()) return (0);
     ticket_16 = OrderSend(a_symbol_8, OP_SELL, LotSize, MarketInfo(a_symbol_8, MODE_BID), g_slippage_176, 0, 0, a_comment_0, MagicNumber, 0, Red);
     if (GetLastError() == 132) {
       Print(a_symbol_8, Unable to open sell trade! Market is CLOSED!
       return (0);
     }
     if (ticket_16 = 0) Sleep(500);
     count_20++;
   }
   if (ticket_16 0 OrderSelect(ticket_16, SELECT_BY_TICKET)) {
     if (!(price_24 0.0 || price_32 0.0)) return (1);
     while (!OrderModify(OrderTicket(), OrderOpenPrice(), price_24, price_32, 0, CLR_NONE) count_20 10) {
       Print(a_symbol_8, Unable to set SL/TP! Error: , ErrorDescription(GetLastError()));
       Print( Bid: , MarketInfo(a_symbol_8, MODE_BID), SL: , price_24, TP: , price_32);
       count_20++;
       Sleep(500);
     }
     return (1);
   }
   Print(a_symbol_8, Unable to open sell trade! Error: , ErrorDescription(GetLastError()));
   return (0);
}
void f0_7(int a_cmd_0, string a_symbol_4) {
   int li_12;
   bool is_closed_16 = FALSE;
   for (int pos_20 = OrdersTotal() - 1; pos_20 pos_20--) {
     if (OrderSelect(pos_20, SELECT_BY_POS, MODE_TRADES) OrderSymbol() == a_symbol_4 OrderMagicNumber() == MagicNumber) {
       if (OrderType() == a_cmd_0) {
         while (!IsTradeAllowed()) Sleep(100);
         while (IsTradeContextBusy()) Sleep(100);
         while (!is_closed_16 li_12 5) {
           RefreshRates();
           is_closed_16 = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), g_slippage_176, White);
           li_12++;
           Sleep(500);
         }
       }
     }
   }
}
int f0_2() {
   string name_8 = symbols.sel
   int file_16 = FileOpenHistory(name_8, FILE_BIN|FILE_READ);
   if (file_16 0) return (-1);
   int li_ret_4 = (FileSize(file_16) - 4) / 128;
   int li_0 = 116;
   ArrayResize(gsa_168, li_ret_4);
   FileSeek(file_16, 4, SEEK_SET);
   for (int index_20 = 0; index_20 li_ret_4; index_20++) {
     gsa_168[index_20] = FileReadString(file_16, 12);
     FileSeek(file_16, li_0, SEEK_CUR);
   }
   FileClose(file_16);
   return (li_ret_4);
}
int f0_0(int ai_0) {
   int datetime_4 = TimeCurrent();
   if (datetime_4 - g_datetime_208 ai_0) {
     g_datetime_208 = datetime_4;
     return (1);
   }
   return (0);
}
bool f0_3(int a_cmd_0, string a_symbol_4) {
   for (int pos_12 = OrdersTotal() - 1; pos_12 pos_12--) {
     if (OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES) OrderSymbol() == a_symbol_4 OrderMagicNumber() == MagicNumber)
       if (OrderType() == a_cmd_0 || a_cmd_0 == -1) return (TRUE);
   }
   for (pos_12 = OrdersHistoryTotal() - 1; pos_12 pos_12--) {
     if (OrderSelect(pos_12, SELECT_BY_POS, MODE_HISTORY) OrderSymbol() == a_symbol_4 OrderMagicNumber() == MagicNumber)
       if (OrderType() == a_cmd_0 || a_cmd_0 == -1 iBarShift(a_symbol_4, Trade_on_Timeframe, OrderOpenTime(), TRUE) == 0) return (TRUE);
   }
   return (FALSE);
}
void SetLab(string name, int x, int y, int corner, string text, int fontsize, string fontname, color clr = -1) {
   ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
   ObjectSet(name, OBJPROP_XDISTANCE, x);
   ObjectSet(name, OBJPROP_YDISTANCE, y);
   ObjectSet(name, OBJPROP_CORNER, corner);
   ObjectSetText(name, text, fontsize, fontname, clr);
}
void ads() {
   SetLab( ads03 , 20, 15, 2,  外汇投资开户qq63511088 , 14, Arial , Aqua);
}

#define MAGICMA 20100604
//+------------------------------------------------------------------+
extern int    检查均线模式   = 4;                                                //1~4 种下单方式 1 仅开仓, 2 有止损无止赢, 3 有止赢无止损, 4 有止赢也有止损
extern double 赢利目标       = 350;                                             //
extern double 止损          = 130;                                               //
extern double 最大风险       = 0.3;                                             //资金控制,控制下单量
extern double 跟踪止损       = 100;                                               //
extern int    最大开仓次数   = 3;                                                //最多开仓次数限制
extern double 最大手数       = 0.1;                                             //最多单仓持仓量限制
extern int    是否允许跟踪止赢 = 1;                                                //非零就允许跟踪止赢
extern int    小均线周期=7;
extern int    中均线周期=23;
extern int    大均线周期=55;
int i,
    p2,
    xxx,
    p1,
    res;
double 手数;
datetime 最后时间;                                                           //时间控制, 仅当一个时间周期完成才检查条件
//+----------------------初始化-------------------------------------+
int init()     
 {
   手数 = 1;
   最后时间 = NULL;
   return(0);
 }
//+---------------------反初始化-------------------------------------+
int deinit() { return(0); }
//+---------------------主程序---------------------------------------+
int start()
 {
   开仓前检查子();                                                           //开仓 平仓 条件检查 和操作
   if (是否允许跟踪止赢 0)   跟踪止损设置子();                                                //跟踪止赢
   return(0);
   }
//+-------确定下单量 子函数()----------------------------------------+
double 手数最佳化子()
{
double lot =手数;
//MarketInfo(Symbol(),MODE_MINLOT);   相关信息
//MarketInfo(Symbol(),MODE_MAXLOT);
//MarketInfo(Symbol(),MODE_LOTSTEP);
lot=NormalizeDouble(最大风险 * AccountBalance()/AccountLeverage(),1);                         //开仓量计算
if(lot 0.1) lot=0.1;
if(lot 最大手数) lot=最大手数;
return(lot);
}
//----------平买 单子函数()------------------------------------------+
void 平买子()
{
if (OrdersTotal() 0 )   
 {
 for(i=OrdersTotal()-1; i i--)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)   break;
    if(OrderType()==OP_BUY)
     {
     OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
     Sleep(5000);
     }
    }
 }
}
//------------平卖 子函数()-------------------------------------------+
void 平卖子()
{
if (OrdersTotal( ) 0 )   
{
 for(i=OrdersTotal()-1;i i--)
 {
 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)   break;
 if(OrderType()==OP_SELL)
    {
    OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
    Sleep(5000);
    }
 }
}
}
//-----------------买卖平条件 子函数()------------------------------------------------+
int 买卖平条件子()                                                            // 在这个函数时可以更改设置你的交易信号 ( 这里使用MACD 和MA 做例子)
   {
    double 小均线1, 小均线2, 中均线, 大均线;
          小均线1= iMA(NULL,0,小均线周期, 0,MODE_SMA,PRICE_MEDIAN,0);
          小均线2= iMA(NULL,0,小均线周期, 0,MODE_SMA,PRICE_MEDIAN,1);
          中均线= iMA(NULL,0,中均线周期, 0,MODE_SMA,PRICE_MEDIAN,0);
          大均线= iMA(NULL,0,大均线周期,0,MODE_SMA,PRICE_MEDIAN,0);
   if((小均线1 小均线2  Open[0] 中均线  Close[0] =中均线) || (小均线1 小均线2  Close[1] 小均线2  Close[1] 中均线 Close[0] =小均线1))     // 买条件 大周期时间Ma在上升,小周期均线向上转折
      return (1);                                                            // 返回信号值为1
   if((小均线1 小均线2  Open[0] 中均线  Close[0] =中均线) || (小均线1 小均线2  Close[1] 小均线2  Close[1] 中均线 Close[0] =小均线1))       // 卖条件
      return (-1);                                                           // 卖信号
return (0);                                                               // 若上述信号值没有,则返回不交易信号0
}
//+---------------开仓前内容的检查 子函数()-------------------------+
int 现在买卖 = 0;
void 开仓前检查子()
{
if (Time[0] == 最后时间 ) return;                                                  // 如果现在开盘时间与最后时间不同,则将现在的开盘时间赋给最后时间
最后时间 = Time[0];
现在买卖 = 买卖平条件子();                                                     //将变量赋为 获取买卖条件子函数的信号值
if (现在买卖 == 1)                                                            //买 先结束已卖的
    平卖子();
if (现在买卖 == -1)                                                           //卖 先结束已买的
    平买子();
if (TimeDayOfWeek( TimeCurrent() )==1)                                             //如果 服务器时间的星期数为周一
 {
 if (TimeHour( TimeCurrent() ) 3 ) return;                                         //且服务器的时间小时数在3点前,则不进行交易
 }
if (TimeDayOfWeek( TimeCurrent() )==5)
 {
 if (TimeHour( TimeCurrent() ) 19 ) return;                                         //周五晚19点后不做(服务器时间)
 }
if (OrdersTotal() = 最大开仓次数) return ;                                           //如果已持有开仓次数达到最大,不做 
if (现在买卖==0) return;                                                        //如果交易信号值为0,不交易
TradeOK();                                                                 //去下单交易
}
//+------------------去下单交易 子函数()------------------------------+
void TradeOK()
{
int 错误 ;
if (现在买卖 == 1)                                                            //买信号
 {
    switch (检查均线模式)
    {
    case 1:   res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, 0,         0,              ,MAGICMA,0,Blue);break;
    case 2:   res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, Ask-止损*Point, 0,              ,MAGICMA,0,Blue);break;
    case 3:   res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, 0,         Ask+赢利目标*Point, ,MAGICMA,0,Blue);break;
    case 4:   res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, Ask-止损*Point, Ask+赢利目标*Point, ,MAGICMA,0,Blue);break;
    default : res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, 0,         0,              ,MAGICMA,0,Blue);break;
    }
    if (res =0)
    {
    错误=GetLastError();
    if(错误==134) Print( 错误134 :没钱了!!
    if(错误==135) RefreshRates();   // 价格已发生变化
    }
    Sleep(5000);
    return ;   
 }
if (现在买卖 == -1)                                                           //卖信号出现
 {
    switch (检查均线模式)
    {
    case 1:   res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, 0,         0,            ,MAGICMA,0,Red); break;
    case 2:   res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, Bid+止损*Point, 0,            ,MAGICMA,0,Red); break;
    case 3:   res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, 0,         Bid-赢利目标*Point, ,MAGICMA,0,Red); break;
    case 4:   res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, Bid+止损*Point, Bid-赢利目标*Point, ,MAGICMA,0,Red); break;
    default : res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, 0,         0,            ,MAGICMA,0,Red); break;
    }
    if (res =0)
    {
    错误=GetLastError();
    if(错误==134) Print( 错误134 :没钱了!!!!
    if(错误==135) RefreshRates();                                                  // 价格已发生变化,再刷新一下数据
    }
    Sleep(5000);                                                             //等待5秒             
    return ;   
 }
}
//+---------------------//跟踪止损 子函数---------------------------------------------+
void 跟踪止损设置子()   
{
bool 修改 = false;
for (int i=0; i OrdersTotal(); i++)
 {
 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)   break;
 if (OrderType()==OP_BUY)
    {
    if ((Bid -OrderOpenPrice()) (跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT)))               //开仓价格 当前止损和当前价格比较判断是否要修改跟踪止赢设置
      {
     if (OrderStopLoss() Bid -跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT))
       {
        修改 = OrderModify(OrderTicket(),
                   OrderOpenPrice(),
                   Bid - 跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT),
                   OrderTakeProfit(),
                   0,
                   Green);
       }
      }
    }
 else if (OrderType()==OP_SELL)
    {
    if ((OrderOpenPrice() -Ask) (跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT)))               //开仓价格 当前止损和当前价格比较判断是否要修改跟踪止赢设置
      {
     if ((OrderStopLoss()) (Ask + 跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT)))
       {   
         修改 = OrderModify(OrderTicket(),
                   OrderOpenPrice(),
                   Ask + 跟踪止损*MarketInfo(OrderSymbol(),MODE_POINT),
                   OrderTakeProfit(),
                   0,
                   Tan);
       }
      }
    }
 }
}
//+------------------------------------------------------------------+

外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!


特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行情快递
推荐行情快递
点击排行