[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 73

 

안녕하세요. MQL4 에서 권력을 키우는 방법은 무엇입니까?

 
Diver-si >> :
안녕하세요. 포럼은 규모가 크고 저는 프로그래밍에 전혀 소질이 없습니다. 고문을 쓰거나 코를 찌르는 것이 가능합니까? stoch 30의 교차점에서 매수 진입, 이 TF에서 이전 TF에서 stoch가 > 30이지만 < 70인 경우. 매도 시 - 이전 TF에서 하락하고 > 30인 경우 70의 교차점, 그러나 < 70. 값을 변경할 수 있는 기능이 있는 테이크 또는 테이크 아웃으로 종료합니다.

준비가 된. 그가 요구한 모든 것을 한 것 같습니다.

파일:
ctoh_1.rar  6 kb
 
Skydiver >> :

준비가 된. 그가 요구한 모든 것을 한 것 같습니다.

정말 감사합니다!!!!

 
Diver-si >> :

정말 감사합니다!!!!

당신은 이미 이 전략을 사용하고 있습니까? 성공적으로?

 
Skydiver >> :

이전에 이 전략으로 작업한 적이 있습니까? 성공적으로?

이들은 전략가가 아니며 한 가지 가정만 테스트하면 됩니다. 그건 그렇고, 고문은 왜 거래를하지 않습니까? 왜 그런지 이해가 안됩니다.

 
В ветке "Корректное открытие нескольких позиций" приведён следующий код:


 if ( iSAR ( NULL , 0 , step0 , 0.1 , 0 ) < Close [ 0 ] )
         
         
         {
           RefreshRates () ;
       ticket = ( OrderSend ( Symbol () , OP_BUY , GetSizeLot () , Ask , slippage ,
       Bid - StopLoss * Point , Ask + TakeProfit * Point , NameExpert ,
               0 , Green ) ) ;
if ( ticket < 1 ) { Print ( " Ошибка открытия 1-го ордера BUY # " , GetLastError ()) ; return ( 0 ) ; }   
if ( ticket > 0 ) //Sleep(10000);
           { //если 1-я позиция открылась, открываем вторую
           RefreshRates () ;       
         ticket_1 = ( OrderSend ( Symbol () , OP_BUY , GetSizeLot () , Ask , slippage ,
       Bid - StopLoss * Point , Ask + TakeProfit * Point , NameExpert ,
               0 , Green ) ) ; 
if ( ticket_1 < 1 ) { Print ( " Ошибка открытия 2 ордера BUY # " , GetLastError ()) ; return ( 0 ) ; }     
if ( ticket_1 > 0 ) // Sleep(10000);
         { // если вторая позиция открылась, открываем третью 
           RefreshRates () ;
       ticket_2 = ( OrderSend ( Symbol () , OP_BUY , GetSizeLot () , Ask , slippage ,
       Bid - StopLoss * Point , Ask + TakeProfit * Point , NameExpert ,
               0 , Green ) ) ;
           if ( ticket_2 < 1 )
           { Print ( " Ошибка открытия 3 ордера BUY # " , GetLastError ()) ; return ( 0 ) ; }    
         } 
       }     
     }

            
       if ( iSAR ( NULL , 0 , step0 , 0.1 , 0 ) > Close [ 0 ])
     {
        
         //---- открываем СЕЛЛ позицию
       RefreshRates () ;
       ticket = ( OrderSend ( Symbol () , OP_SELL , GetSizeLot () , Bid , slippage ,
         Ask + StopLoss * Point , Bid - TakeProfit * Point , NameExpert ,
               0 , Red )) ;
              
           if ( ticket < 1 ) { Print ( " Ошибка открытия 1-го ордера SELL # " , GetLastError ()) ; return ( 0 ) ; }   
if ( ticket > 0 ) //Sleep(10000);
           { //если 1-я позиция открылась, открываем вторую
       RefreshRates () ;      
       ticket_1 = ( OrderSend ( Symbol () , OP_SELL , GetSizeLot () , Bid , slippage ,
         Ask + StopLoss * Point , Bid - TakeProfit * Point , NameExpert ,
             0 , Red )) ;
             
           if ( ticket_1 < 1 ) { Print ( " Ошибка открытия 2 ордера SELL # " , GetLastError ()) ; return ( 0 ) ; }     
if ( ticket_1 > 0 ) // Sleep(10000);
         { // если вторая позиция открылась, открываем третью        
       RefreshRates () ; 
       ticket_2 = ( OrderSend ( Symbol () , OP_SELL , GetSizeLot () , Bid , slippage ,
         Ask + StopLoss * Point , Bid - TakeProfit * Point , NameExpert ,
               0 , Red )) ;               
                 if ( ticket_2 < 1 )
           { Print ( " Ошибка открытия 3 ордера SELL # " , GetLastError ()) ; return ( 0 ) ; }    
         } 
       }     
     }
   
     return ( 0 ) ;
    
}



이 if( iSAR (NULL,0,step0,0.1,0)<Close[0]) 구문에 조건을 삽입하는 방법을 알려주실 수 있습니까? 예를 들어 매수 포지션이 열려 있으면 매도 포지션은 모든 매수 포지션이 닫힐 때까지 열리지 않습니다. 즉, 거래 주기, 우리는 3개의 포지션을 샀고, 3개의 포지션이 모두 닫힐 때까지 기다립니다. 포지션은 손절매 또는 이익실현에 의해서만 마감됩니다. 모든 위치가 닫히고 신호를 기다리고 신호가 도착했으며 신호에 따라 세 가지 위치를 사거나 판매합니다. "KimIV의 유용한 기능"을 연구했습니다. CountOrders(), ExistOrders(), ExistPositions() 함수를 사용할 수 있습니다. 그러나 실제로 어떻게 삽입합니까? if((iSAR(NULL,0,step0,0.1,0)>Close[0])&& ExistPositions(NULL,OP_SELL)==false) 구문이 작동하지 않습니다. 부울 변수를 삽입해야 한다는 것은 알고 있지만 실제로 어떻게 해야 합니까? 내가 따라잡지 못하는 것.

 
anat >> :



이 if( iSAR (NULL,0,step0,0.1,0)<Close[0]) 구문에 조건을 삽입하는 방법을 알려주실 수 있습니까? 예를 들어 매수 포지션이 열려 있으면 매도 포지션은 모든 매수 포지션이 닫힐 때까지 열리지 않습니다. 즉, 거래 주기, 우리는 3개의 포지션을 샀고, 3개의 포지션이 모두 닫힐 때까지 기다립니다. 포지션은 손절매 또는 이익실현에 의해서만 마감됩니다. 모든 위치가 닫히고 신호를 기다리고 신호가 도착했으며 신호에 따라 세 가지 위치를 사거나 판매합니다. "KimIV의 유용한 기능"을 연구했습니다. CountOrders(), ExistOrders(), ExistPositions() 함수를 사용할 수 있습니다. 그러나 실제로 어떻게 삽입합니까? if((iSAR(NULL,0,step0,0.1,0)>Close[0])&& ExistPositions(NULL,OP_SELL)==false) 구문이 작동하지 않습니다. 부울 변수를 삽입해야 한다는 것은 알고 있지만 실제로 어떻게 해야 합니까? 내가 따라잡지 못하는 것.


열 수 있지만 반대 방향으로 자동으로 차단됩니다. 또한 추가 코드를 미리 만들어진 어드바이저로 조각하는 것보다 별도의 어드바이저와 함께 이 작업을 수행하는 것이 훨씬 쉽습니다. Corrector.mq4 참조



 
(NULL, PERIOD_M1 , 14, 0, 1, PRICE_CLOSE, 1, 1 ) < Ask) { // 가격이 선 위에 있으면 매도 <--------- 맞나요?



(NULL,PERIOD_M1, 14, 0, 1, PRICE_CLOSE, 2, 1 ) > Bid) { // 가격이 선보다 낮으면 buy <----- 논리에 맞는 건가요 아니면 제가 헷갈리는 건가요?



도와주세요...

 
1Rakso писал(а) >>
(NULL,PERIOD_M1, 14, 0, 1, PRICE_CLOSE, 1, 1)

그나저나 이게 무슨 디자인이지?