MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 266

 
danil77783 :

좋은 하루 Artyom . 내 이름은 다닐입니다. 질문은 다음입니다. Expert Advisor를 작성했거나 MQL4의 비디오 자습서에서 다시 작성했습니다. 분명히 오류가 있고 컴파일되지 않습니다. 도와줄 수 있습니까?

컴파일러는 문자열과 문자열 내의 위치를 나타내는 오류를 발생시킵니다. 그들에 초점

메시지 텍스트 상단에 있는 SRC 버튼을 사용하여 프로그램 텍스트를 삽입하십시오 - 보세요, 더 좋습니다!!!

 //+------------------------------------------------------------------+
//|                                                        test7.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

파일을 첨부할 수도 있습니다. 그러면 즉시 MetaEditor를 살펴보겠습니다.

 
LRA :

컴파일러는 문자열과 문자열 내의 위치를 나타내는 오류를 발생시킵니다. 그들에 초점

메시지 텍스트 상단에 있는 SRC 버튼을 사용하여 프로그램 텍스트를 삽입하십시오 - 보세요, 더 좋습니다!!!

파일을 첨부할 수도 있습니다. 그러면 즉시 MetaEditor를 살펴보겠습니다.


잘못된 행동에 대해 사과드립니다. 수정하겠습니다. 말씀드립니다 :) 완전히 지쳤습니다.

 //+------------------------------------------------------------------+
//|                                                        test7.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
//-------------------------------------------------------------------
extern double lots            = 0.1 ;
extern int     TakeProfit      = 300 ;
extern int     StopLoss        = 50 ;
extern int     Magic           = 777 ; 
extern int     Slippage        = 3 ;
//-------------------------------------------------------------------
extern string TMA             = "Параметры индикатора TMA" ;
extern string TimeFrame       = "current time frame" ;
extern int     HalfLength      = 56 ;
extern int     Price           = PRICE_CLOSE ;
extern double ATRMultiplier   = 2.0 ;
extern int     ATRPeriod       = 100 ;
extern bool    Interpolate     = true ;
//-------------------------------------------------------------------
double PriceHigh, PriceLow, SL ,TP;
int ticet;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   if ( Digits == 3 || Digits == 5 );
   {
       TakeProfit *= 10 ;
       StopLoss   *= 10 ;
       Slippage   *= 10 ;
   }  
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
    PriceHigh = iCustom ( NULL , 0 , "TMA_Fair" , TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1 , 0 );  
    PriceLow  = iCustom ( NULL , 0 , "TMA_Fair" , TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2 , 0 );  
    
     if (CountSell() == 0 && Bid >= PriceHigh)
    {
       tik et = OrderSend ( Symbol (), OP_SELL , lots, Bid , Slippage, 0 , 0 , "TMA robot" , Magic, 0 , Red);  
       if (tiket > 0 )
      {
          SL = NormalizeDouble ( Bid + StopLoss* Point , Digits );
          TP = NormalizeDouble ( Bid - TakeProfit* Point , Digits );
          
           if ( OrderSelect (ticet, SELECT_BY_TICKET )) 
               OrderModify (tiket, OrderOpenPrice (), SL, TP, 0 );
        }
    }
  }
//--------------------------------------------------------------------------------------------
 if (CountBuy() == 0 && Ask <= PriceLow)
    {
      tiket = OrderSend ( Symbol (), OP_BUY , lots, Ask , Slippage, 0 , 0 , "TMA robot" , Magic, 0 , Blue);  
       if (tiket > 0 )
      {
          TP = NormalizeDouble ( Ask + TakeProfit* Point , Digits );
          SL = NormalizeDouble ( Ask - StopLoss* Point , Digits );
          
           if ( OrderSelect (ticet, SELECT_BY_TICKET )) 
               OrderModify (tiket, OrderOpenPrice (), SL, TP, 0 );
        }
    }
//+------------------------------------------------------------------+
int CountSell() 
  {
     int count = 0 ;
     for ( int trade = OrdersTotal ()- 1 ; trade>= 0 ; trade--)
    {
       if ( OrderSelect (trade, SELECT_BY_POS , MODE_TRADES ))
       {
           if ( OrderSymbol () == Symbol () && OrderMagicNumber ) == Magic && OrderType () == OP_SE LL )
             count++;
       }   
    }
     return (count);
  }
//-----------------------------------------------------------------------------------------------  
   int CountBuy() 
  {
     int count = 0 ;

     for ( int trade = OrdersTotal ()- 1 ; trade>= 0 ; trade--)
    {
       if ( OrderSelect (trade, SELECT_BY_POS , MODE_TRADES ))
       {
           if ( OrderSymbol () == Symbol () && OrderMagicNumber ) == Magic && OrderType () == OP_BU Y )
             count++;
       }   
    }
     return (count);
  }

오류가 나는 줄은 태그로 표시해 두었으니 파일첨부 하였으니.... 봐주세요. 미리 감사드립니다!

 
 
danil77783 :

잘못된 행동에 대해 사과드립니다. 수정하겠습니다. 말씀드립니다 :) 완전히 지쳤습니다.

오류가 나는 줄은 태그로 표시해 두었으니 파일첨부 하였으니.... 봐주세요. 미리 감사드립니다!

티켓과 티켓이 다른 변수라는 사실이 벌써부터 너무 어렵지 않나요?

여는 대괄호 없이 닫는 대괄호가 보이지 않습니까?

 
도와주셔서 정말 감사합니다!!!....오류를 다 고쳤는데 잘 모르겠습니다. 도움을 요청합니다. 내가 또 어디 망했어?
 
danil77783 :
도와주셔서 정말 감사합니다!!!....오류를 다 고쳤는데 잘 모르겠습니다. 도움을 요청합니다. 내가 또 어디 망했어?
OnTick 함수의 본문에서 이 블록이 날아갔고 중괄호 하나를 제거합니다.
 
Alekseu Fedotov :
OnTick 함수의 본문에서 이 블록이 날아갔고 중괄호 하나를 제거합니다.

그러면 괄호가 하나 빠집니다.

강조 표시된 줄 위에 있는 대괄호는 빼기 줄보다 먼저 아래로 이동해야 합니다.

}
//+------------------------------------------------------------------+
 
Alexey Viktorov :

그러면 괄호가 하나 빠집니다.

강조 표시된 줄 위에 있는 대괄호는 빼기 줄보다 먼저 아래로 이동해야 합니다.

A. 네, 일정을 다시 잡아야 합니다.

 

다!!!....감사합니다. 컴파일됨. 공장!

 
danil77783 : 다!!!.... 감사합니다. 컴파일됨. 공장!

이익은 무엇입니까? 그러나 빈 함수가 있는 이 조각은 버릴 수 있습니다. 노력하다...

 //+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   
  }