무료로 어드바이저를 작성해 드립니다 - 페이지 17

 
안녕하세요 MQL4 언어를 배우기 시작했는데 우선 MACD Sample EA를 수강했습니다. 그는 그것을 조각으로 놓았다. 모든 것을 알아낸 것 같지만 여러 통화 쌍의 데모에서 동시에 작동하도록 만들 수는 없습니다. 터미널에서 포지션이 이미 열려 있다면(수동으로 또는 어드바이저에 의해) 작동하지 않을 것입니다.저는 이미 제가 아는 모든 것을 시도했습니다. 그러나 지식이 부족합니다. 추가하거나 수정해야 할 사항을 알려주세요.
 
igor.malish :
안녕하세요 MQL4 언어를 배우기 시작했는데 우선 MACD Sample EA를 수강했습니다. 그는 그것을 조각으로 내놓았다. 모든 것을 알아낸 것 같지만 여러 통화 쌍의 데모에서 동시에 작동하도록 만들 수는 없습니다. 터미널에서 포지션이 이미 열려 있다면(수동으로 또는 어드바이저에 의해) 작동하지 않을 것입니다.저는 이미 제가 아는 모든 것을 시도했습니다. 그러나 지식이 부족합니다. 추가하거나 수정해야 할 사항을 알려주세요.

MACD 샘플은 여러 상품 거래를 위해 설계되지 않았습니다.

total= OrdersTotal ();

   if ( total< 1 )

     {...
이 조건에서 적어도 하나의 상품에 대해 이미 개설된 거래를 개설하는 것은 실질적으로 금지되어 있습니다.
 
dimeon :

MACD 샘플은 여러 상품과 거래하도록 설계되지 않았습니다.

이 조건에서 적어도 하나의 상품이 이미 개설된 경우 거래를 개설하는 것은 실질적으로 금지되어 있습니다.
나는 비슷한 작업을 했지만 하루에 하나의 거래에 대해. 저것들. 조건은 OrdersTotal() 뿐만 아니라 닫힌 항목의 이력에서도 발생합니다.
 
어떻게든 OrdersTotal , OrderSymbol 및 OrderMagicNumber를 서로 연결할 수 있습니까?
 
igor.malish :
OrdersTotal, OrderSymbol 및 OrderMagicNumber를 어떻게든 연결할 수 있습니까?
바보 같은 질문.
 
인사말. 그러나 누군가가 내 조언자를 새로운 mql에 적응시킬 것입니까? (#property strict) 그러면 개발되고 기능도 발전하지만 작성된 언어가 구식입니다. mql5로 전환하고 싶다면 더 이상 변경하기가 매우 어려울 것입니다. 이 Expert Advisor는 ZigZaHod v1.1의 이후 수정 사항으로, 탐색하고 다듬을 수 있도록 최소한의 변경이 필요합니다. 이에 적극적으로 참여할 준비가 되어 있습니다. 무엇을 바꿔야 하는지에 대한 이해가 부족합니다.
 

오류 수정을 도와주세요. 아이디어에 따르면 고문은 하루에 한 번 일해야 합니다. 이때가 새로운 하루가 시작되는 때입니다. 오전 1시에. 높고 낮은 두 개의 보류 주문 을 열어야 합니다

이전 촛불. 즉, 00:00시에 닫힌 양초에 의해. 다음날이 시작될 때까지 할 일이 없습니다. 내가 무엇을 잘못하고 있지?


 extern string Times = "Time" ;
extern int StartHour    = 1 ;
extern int TakeProfit   = 50 ;
extern int StopLoss     = 50 ;
extern int Lots         = 1 ;

void OnTick ()
{ 
   static bool IsFirstTick = true ;
   static int ticket = 0 ;
   int h=TimeHour( TimeCurrent ());
   Alert ( "TimeHor: " , h);
   if (Hour() == StartHour)
   {
     if (IsFirstTick == true )
      IsFirstTick - false ;
      
       bool res;
      res= OrderSelect (ticket, SELECT_BY_TICKET);
       if (res == true )
      { 
         if (OrderCloseTime() == 0 )
         {
             bool res2;
            res2 = OrderClose(ticket, Lots, OrderClosePrice(), 10 );
            
             if (res2 == false )
            {
               Alert ( "Error Closing Order #" , ticket);
               }
         }   
      }
       if (Open[ 0 ] < Open[StartHour])
      {
         ticket = OrderSend ( Symbol (), OP_BUYLIMIT, Lots, High[ 1 ], 10 , Low[ 1 ]-StopLoss* Point , High[ 1 ]+TakeProfit* Point , "Set bu ForexRobot" );
         if (ticket < 0 )
         {
           Alert ( "Error Sending Order!" );
         }  
       }
       else
       {
         ticket = OrderSend ( Symbol (), OP_SELLLIMIT, Lots, Low[ 1 ], 10 , High[ 1 ]+StopLoss* Point , Low[ 1 ]+TakeProfit* Point , "Set bu ForexRobot" );
         if (ticket < 0 )
         {
           Alert ( "Error Sending Order!" );
         } 
    }   
}
 
MIR_KAZAN :

오류 수정을 도와주세요. 아이디어에 따르면 고문은 하루에 한 번 일해야 합니다. 이때가 새로운 하루가 시작되는 때입니다. 오전 1시에. 높고 낮은 두 개의 보류 주문 을 열어야 합니다

이전 촛불. 즉, 00:00시에 닫힌 양초에 의해. 다음날이 시작될 때까지 할 일이 없습니다. 내가 무엇을 잘못하고 있지?


코드를 삽입할 때 내장된 포럼 기능을 사용하십시오. 포럼에 코드를 올바르게 삽입하십시오.
 
barabashkakvn :
코드를 삽입할 때 내장된 포럼 기능을 사용하십시오. 포럼에 코드를 올바르게 삽입하십시오.
분명한.
 
MIR_KAZAN :

오류 수정을 도와주세요. 아이디어에 따르면 고문은 하루에 한 번 일해야 합니다. 이때가 새로운 하루가 시작되는 때입니다. 오전 1시에. 높고 낮은 두 개의 보류 주문 을 열어야 합니다

이전 촛불. 즉, 00:00시에 닫힌 양초에 의해. 다음날이 시작될 때까지 할 일이 없습니다. 내가 무엇을 잘못하고 있지?


다음은 오타입니다.

      IsFirstTick - false ;

반드시 =