조언자 쓰는 법 배우기... - 페이지 4

 

고문이 다중 통화인 경우 필요합니다.

또한, Bid Point의 값은 MarketInfo()를 통해 이미 설정(선언)되어 있을 수 있습니다.

한 번은 다중 통화 Expert Advisor에서 스레드를 시작했습니다. 한번 보시면 궁금증이 풀리실꺼에요....

'다중 통화 EA에 대한 질문'

 

그리고 여기에 수정을 위해 특별히

'다중 화폐 EA에 대한 질문'

 

이 옵션을 만들었습니다.. 개봉 직후에 ModifyPos() 함수를 호출합니다

 OrderSend ( . . . ) ;

ModifyPos ( ) ;



void ModifyPos ( )
  {
   if ( OrderSelect ( 0 , SELECT_BY_POS ) = = true ) // Если есть открытый ордер
    { 
     if ( OrderType ( ) = = OP_BUY )
     OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Bid - Stop * Point , Bid - TakeProfit * Point , 0 , Red ) ;
     if ( OrderType ( ) = = OP_SELL )
     OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Ask + Stop * Point , Ask + TakeProfit * Point , 0 , Red ) ;
    }  
  }

중지 - 20

이익을 취하십시오 - 100

로그 오류 - OrderModify 오류 130

 

테이크를 위한 매수 포지션을 만들어보세요

 Ask + TakeProfit * Point

당신 자신이 생각합니다! 매수 테이크 이익이 갑자기 포지션 의 현재 가격 보다 낮은 것으로 판명된 이유는 무엇입니까?

오류가 발생하는 것은 당연합니다.

매도 포지션도 마찬가지...

그러나 이익 실현을 변경할 필요가 없다면 다음을 수행하는 것이 좋습니다.

 OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Bid - Stop * Point ,
                                                     OrderTakeProfit ( ) , 0 , Blue ) ;
마찬가지로 셀의 경우
 
rid >> :

당신 자신이 생각합니다! 매수 테이크 이익이 갑자기 포지션의 현재 가격보다 낮은 것으로 판명된 이유는 무엇입니까?

오류가 발생하는 것은 당연합니다.

Rid님 정말 감사합니다!

내주의가 아님) ... 그것은 밝혀졌고 심지어 효과가있었습니다)

 void ModifyPos ( )
   {
        if ( OrderSelect ( 0 , SELECT_BY_POS ) = = true ) // Если есть открытый ордер
            { 
               if ( OrderType ( ) = = OP_BUY )
                   OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Bid - Stop * Point , OrderTakeProfit() , 0 , Red ) ;
               if ( OrderType ( ) = = OP_SELL )
                   OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Ask + Stop * Point , OrderTakeProfit() , 0 , Red ) ;
            }      
   }
 

테스트 중 로그에 있는 마지막 오류는 OrderSend 오류 138 입니다.

트랜잭션이 없을 때 중단 없이 진행됩니다. 모든 틱에 대해 이 오류가 발생합니다.

주문이 발동되자마자 오류가 사라지고.. 주문이 닫히고 오류가 다시 발생합니다..

신호 없이 주문을 보내려고 하는 것 같기는 한데 왜 그런지 잘 모르겠습니다. 조건( 이면 )은 판매용 및 구매용입니다.

 
ALex2008 писал(а) >>

테스트 중 로그에 있는 마지막 오류는 OrderSend 오류 138 입니다.

트랜잭션이 없을 때 중단 없이 진행됩니다. 모든 틱에 대해 이 오류가 발생합니다.

주문이 발동되자마자 오류가 사라지고.. 주문이 닫히고 오류가 다시 발생합니다..

신호 없이 주문을 보내려고 하는 것 같은데 왜 그런지 모르겠네요. 조건( 이면 )은 판매용 및 구매용입니다.

글쎄, 당신은 그것을 읽지 않았습니다, 당신은 신중하게 읽었습니다 https://book.mql4.com/en/content 모든 것이 거기에 있습니다

 

읽기와 이해는 별개의 문제인데...실제로 이해하고 싶어요)

진입 조건이 있는데, 이러한 조건이 충족되면 주문이 열리는 기능으로 제어가 넘어갑니다.

그래서 나는 OrderSend 가 조건을 우회하여 작동하려고 시도하는 방법과 논리적으로 오류를 제공하는 .. 왜냐하면. 입국 조건 없음

 
bool 재생률 ( )

사전 정의된 변수 및 시계열 배열 의 데이터 업데이트 . 이 기능은 Expert Advisor 또는 스크립트가 오랫동안 계산을 수행하여 업데이트된 데이터가 필요한 경우에 사용됩니다. 데이터가 업데이트되면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 데이터는 클라이언트 단말의 현재 상태와 일치하기 때문에 업데이트되지 않을 수 있습니다. Expert Advisors 및 스크립트는 기록 데이터의 자체 사본으로 작동합니다. 현재 기호에 대한 데이터 복사본은 Expert Advisor 또는 스크립트를 처음 실행하는 동안 생성됩니다. 다음에 Expert Advisor를 실행할 때마다(스크립트 가 한 번 실행 되고 들어오는 틱에 의존하지 않음을 기억하십시오) 처음에 생성된 복사본이 업데이트됩니다. Expert Advisor 또는 스크립트가 실행되는 동안 하나 이상의 새 틱이 올 수 있으므로 데이터가 오래될 수 있습니다.

//------------------------------------------------ ------------------------------

OrderSend 함수를 실행하기 전에 이 함수를 삽입해 보십시오.

센티미터. :

개봉 및 주문 2008-05-05 14:26:13

"프로그램이 최소한의 거부된 거래 주문으로 안정적으로 작동하려면 OrderSend() 함수를 실행하기 전에 MarketInfo() 및 RefreshRates ( ) 기능."

 
   RefreshRates();
   OrderSend(Symbol(), OP_SELL, Lot, Price, Slippage, 0, Profit, Comment, MAGIC,0, colorsell);

도움이되지 않습니다 ...