누가 로봇을 도울 수 있습니까? 로봇이 작동하지 않는 이유는 무엇입니까? - 페이지 4

 
GIM :

for(int i=0;i<OrdersTotal();i++)

오류: "나"

오류가 무엇입니까?

 //+------------------------------------------------------------------+
//|                                                          123.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

input double   lots       = 0.01 ;   // Лот
input int      stop_loss      = 10 ; // Указываем в валюте депозита
input int      take_profit    = 20 ; // Указываем в валюте депозита
extern int     Slippage = 3 ;         // Допустимое проскальзываение цены в пунктах
input int      Magic = 16384 ;       // Уникальный номер эксперта

int             last_bar       = 0 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
// ===== Пересчет под пятизнак =========
   if ( Digits ()== 3 || Digits ()== 5 )
     {
      Slippage           *= 10 ;
     }   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   if (last_bar == Bars ) { return ;}
   last_bar = Bars ;
   if ( OrdersTotal () == 0 ){
           int ticketbuy = OrderSend ( Symbol (), OP_BUY, lots ,Ask, Slippage, 0 , 0 ,   "" , Magic, 0 , clrBlue );
             if (ticketbuy< 0 )
               Print ( Symbol (), " OpenPosition. OrderSend Buy fail #" , GetLastError ());
             else
               Print ( Symbol (), " OpenPosition. OrderSend Buy successfully" );
           int ticketsell = OrderSend ( Symbol (), OP_SELL, lots ,Bid, Slippage, 0 , 0 ,   "" , Magic, 0 , clrRed );
             if (ticketsell< 0 )
               Print ( Symbol (), " OpenPosition. OrderSend Sell fail #" , GetLastError ());
             else
               Print ( Symbol (), " OpenPosition. OrderSend Sell successfully" );      
}
 double profit= 0 ;
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()== _Symbol && OrderMagicNumber()== Magic)
        {
         profit+=OrderProfit()+OrderSwap()+OrderCommission();
        }
     }
 int requot= 0 ;
 if (profit>=take_profit || (-profit)>=stop_loss)
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()== _Symbol && OrderMagicNumber()== Magic)
        {
         if (OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage, clrRed ))
               requot= 0 ;
             else
              {
               requot++;
              }
         if (requot> 10 )
              {
               i++;
               requot= 0 ;
              }
            i--;
        }
     }
 
  }
//+------------------------------------------------------------------+

 
GIM :
이해하는 방법, 주문만으로 ....
즉, 이 특정 고문이 개설한 주문의 경우, 또는 예를 들어 하나의 계정에 고문의 여러 사본을 저장하여 어느 고문이 주문을 개설했는지 혼동하지 않도록 하는 경우 식별 번호가 사용됩니다.
 
아마도 이것이 거래 또는 통화 쌍의 수 입니까?
 
GIM :
이해하는 방법, 주문만으로 ....
글쎄, Expert Advisor가 계정의 자체 주문에 대해서만 작동하도록 올바르게 작성하는 것이 일반적입니다. 갑자기 여러 전략과 전문가들이 자신의 명령을 다른 사람의 명령과 혼동하지 않도록 계획합니다.
 
Sergey Gritsay :
즉, 이 특정 고문이 개설한 주문의 경우, 또는 예를 들어 하나의 계정에 고문의 여러 사본을 저장하여 어느 고문이 주문을 개설했는지 혼동하지 않도록 하는 경우 식별 번호가 사용됩니다.
마음에서 모든 것이 분명합니다!
 
Vladimir Zubov :

오류가 무엇입니까?

여기서 오류는 i 변수가 첫 번째 for 루프와 두 번째 for 루프에서 2번 초기화된다는 것입니다. 두 번째 for 루프에서 초기화를 제거하거나 변수 이름을 다른 것으로 바꿔야 합니다.
 
모두에게 감사합니다!
 
Sergey Gritsay :
여기서 오류는 i 변수가 첫 번째 for 루프와 두 번째 for 루프에서 2번 초기화된다는 것입니다. 두 번째 for 루프에서 초기화를 제거하거나 변수 이름을 다른 것으로 바꿔야 합니다.
예, 컴파일러가 맹세하는 것이라고 생각했습니다.
 
Vladimir Zubov :
예, 컴파일러가 맹세하는 것이라고 생각했습니다.
컴파일러가 맹세하지만 오류는 아닐 가능성이 높으며 경고가 생성되어야 합니다.
 

하지만 청소하지 않으면

 #property strict

그런 다음 오류를 맹세합니다.