客服热线:18391752892

新手:一个EA源码的详细注释,请大家帮忙解释一下

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

您需要 登录 才可以下载或查看,没有帐号?注册 新手有个ea 的部份地方看不懂,请大家帮忙解释一下, 下面是我自已注解上去的,如果注解错了,也请指出,还有我不明白的地方,请帮忙
 解释一下。
 
 #define SIGNAL_NONE 0                  //预定义 这里起什么作用呀??
 #define SIGNAL_BUY   1
 #define SIGNAL_SELL 2
 #define SIGNAL_CLOSEBUY 3
 #define SIGNAL_CLOSESELL 4
 
 extern bool EachTickMode = True;       //EachTickMode = True
 extern double Lots = 1.0;            //每次下单手数
 extern int Slippage = 3;           //成交单数允许的滑动点数
 extern bool UseStopLoss = True;        //是否使用止损
 extern int StopLoss = 30;            //止损点数
 extern bool UseTakeProfit = True;     //是否使用止赢
 extern int TakeProfit = 60;         //止赢点数
 extern bool UseTrailingStop = True;     //是否使用跟踪止赢
 extern int TrailingStop = 30;         //跟踪止赢点数
 
 int BarCount;                   //自定义
 int Current;                    //自定义
 bool TickCheck = False;         
 
 int init() {
   BarCount = Bars;             // BarCount =当前K线图所有的历史K线个数
 
   if (EachTickMode) Current = 0; else Current = 1;   
 //如果 EachTickMode 是真的,Current = 0,是假的Current = 1 ,请问 这里 Current起到什么作用???
 
   return(0);
 }
 
 int deinit() {
   return(0);
 }
 
 int start() {
   int Order = SIGNAL_NONE;           //自定义 Order = SIGNAL_NONE
   int Total, Ticket;               //自定义 Total, Ticket
   double StopLossLevel, TakeProfitLevel; //自定义 StopLossLevel, TakeProfitLevel
 
   if (EachTickMode Bars != BarCount) TickCheck = False;
 // 如果 EachTickMode 和 当前K线图所有的历史K线个数   不等于 BarCount 是真的,TickCheck = False ,请问这里起什么作用??
   Total = OrdersTotal();   // Total = OrdersTotal(),OrdersTotal 是下单的意思吗??
   Order = SIGNAL_NONE;    // Order = SIGNAL_NONE ,这里起什么作用呀???
 
 ......
 
 
 //Check position       检查位置
   bool IsTrade = False; // 自定义 IsTrade = False
 
   for (int i = 0; i Total; i ++)   // 自定义 i = 0 ,如果 i Total,运行 i ++ 意思是 如果 i Total,i+1 是这样吗?
 {
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);   //这里是什么意思 ?起什么作用????????
     if(OrderType() 0) // 如果 UseTrailingStop 和TrailingStop 0 是真就运行下面。是这个意思吗?
 {           
           if(Bid - OrderOpenPrice() Point * TrailingStop)   //这里是什么意思 ?起什么作用?
 {
             if(OrderStopLoss() Bid - Point * TrailingStop) //这里是什么意思 ?起什么作用?
 
 {
               OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0,
 
 MediumSeaGreen); //这里是什么意思 ?起什么作用? 是要平仓的意思吗?
               if (!EachTickMode) BarCount = Bars;
               continue;
             }
           }
         }
 
 ................. 信号开始(退出卖出)跟上面差不多,只要解释上面的下面就了解了....
 
 //+------------------------------------------------------------------+
   //| Signal Begin(Entry)   信号开始 买 卖                  |
   //+------------------------------------------------------------------+
 
   if (Buy1_1 Buy1_2 Buy2_1 Buy2_2) Order = SIGNAL_BUY;
 
   if (Sell1_1 Sell1_2 Sell2_1 Sell2_2) Order = SIGNAL_SELL;
 
 
   //+------------------------------------------------------------------+
   //| Signal End                                      |
   //+------------------------------------------------------------------+
 
   //Buy     买
   if (Order == SIGNAL_BUY ((EachTickMode !TickCheck) || (!EachTickMode (Bars != BarCount))))
 // ((EachTickMode !TickCheck) || (!EachTickMode (Bars != BarCount))) 这几个都是什么意思 ,起什么作用??
 
 {
     if(!IsTrade)   // 这里是什么意思 ,起什么作用????
 
 {
       //Check free margin   检查可用保证金
       if (AccountFreeMargin() (1000 * Lots)) {
         Print( We have no money. Free Margin = , AccountFreeMargin());
         return(0);
       }
 
       if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0; //这里是什么意思??
       if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0; //这里是什么意思??
 
       Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, Buy(# + MagicNumber +
 
  ) , MagicNumber, 0, DodgerBlue); //这里是什么意思??
 
       if(Ticket 0)   // 如果Ticket 0 是真的,就运行下面, Ticket是什么??
 
 {
         if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) //这里是什么意思?? 
 
 {
                        Print( BUY order opened : , OrderOpenPrice()); // Print 是输出的意思吧??? 这里起什么作用呀??
 
             if (SignalMail) SendMail( [Signal alert] , [ + Symbol() + ] + DoubleToStr(Ask, Digits) + Open Buy
 //这里是什么意思??
 
                 }
 else
 {
                        Print( Error opening BUY order : , GetLastError()); // Print 是输出的意思吧??? 这里起什么作用呀??
                 }
       }
       if (EachTickMode) TickCheck = True; // 这里是什么意思?? 这里起什么作用呀??
       if (!EachTickMode) BarCount = Bars; // 这里是什么意思?? 这里起什么作用呀??
       return(0);
     }
   }
 
 ..........................下面的是卖出的... 基本上跟买进的一个样,解释上面,下面的我就可以明白了....
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!


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


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