OrderModify() 질문

 

안녕하세요 MQL4 포럼입니다.

{OrderModify(ticket, 0 ,Ask- 500 * Point , 0 , 0 ,Blue);}}}}

위의 코드는 작동하지만 매도호가가 위아래로 움직일 때 sl을 위아래로 움직입니다.

해결책으로 이것을 시도했습니다 ...

{OrderModify(ticket, 0 ,OrderOpenPrice()- 500 * Point , 0 , 0 ,Blue);}}}}

(선택되는 주문은 구매 주문 입니다)

저널에 수신오류가 있는지 확인해보니 4051이더군요. 4051에러가 여러 개 있습니다. 기본적으로는 안되는데, 이전에 이 문제를 해결한 적이 있고 설명이 있는 사람이 있는지 궁금합니다.

이 솔루션이 작동하지 않는 이유를 모르겠습니다(예, 첫 번째 잘못된 OrderModify 솔루션이 작동하기 때문에 주문을 올바르게 선택하고 있다고 생각합니다).

고맙습니다.

 
WhooDoo22 :


수신되는 오류에 대해 저널을 확인했고 4051을 읽었습니다. 여러 오류 4051이 있습니다. 기본적으로 작동하지 않으며 다른 사람이 이전에이 문제를 해결하고 설명이 있는지 궁금합니다.

함수에 문제가 있는 경우 해당 함수에 대한 설명서를 읽으십시오. . . . OrderModify() <----- ME를 클릭하십시오! ! !

주문의 개시 가격을 0.0 으로 수정할 수 없습니다. . . OrderSelect()를 올바르게 수행했다고 가정하고 OrderModify()에 전달하는 두 번째 매개변수에 대해 OrderOpenPrice()를 사용하십시오.

 

Simon, 나는 OrderModify() 함수에 대한 문서를 읽고 사용되는 예제가 후행 중지임을 알아차렸습니다. EA에 후행 중지를 사용하고 싶지 않습니다. 이것은 내가 후행 정지를 사용한 경우(예에 따라) EA가 시장이 현재 sl보다 x 포인트 위로 이동하여 sl을 지정된 가격으로 수정해야 하기 때문입니다. 기본적으로 이것은 너무 복잡합니다. 주문이 시장에 제출된 후 주문에 손절매 를 추가하고 싶습니다.

어쨌든 현재도 새로운 솔루션을 시도하고 있습니다.

고맙습니다.

 
WhooDoo22 :

Simon, 나는 OrderModify() 함수에 대한 문서를 읽고 사용되는 예제가 후행 중지임을 알아차렸습니다. EA에 후행 중지를 사용하고 싶지 않습니다. 이것은 내가 후행 정지를 사용한 경우(예에 따라) EA가 시장이 현재 sl보다 x 포인트 위로 이동하여 sl을 지정된 가격으로 수정해야 하기 때문입니다. 기본적으로 이것은 너무 복잡합니다. 주문이 시장에 제출된 후 주문에 손절매를 추가하고 싶습니다.

어쨌든 현재도 새로운 솔루션을 시도하고 있습니다.

고맙습니다.

그렇다면 Open Price 를 0.0으로 변경하려는 이유는 무엇입니까? Open Price를 변경하지 않고 그대로 두어야 합니다. 즉, OrderOpenPrice()를 시도하십시오. . .
 

사이먼,

전략 테스터:

1. 비주얼 모드

2. 속도 31

3. 2010.12.29

4. EURUSD

5. M15

모든 틱이 아니라 " 공개 가격만 "을 실행합니다.


메타에디터: 편집 -> 찾기... -> "// 선택 1."


선택 1. = 오류가 없지만 분명히 이것을 원하지 않습니다.

선택 2. = 저널 탭 -> 저널은 "오류 4051"을 읽습니다.

고맙습니다.

파일:
test1.mq4  12 kb
 

분명히, OrderModify() 매개변수 내에서 OrderOpenPrice() 함수 를 사용하는 것은 오류 4051에 따라 "잘못된 함수 매개변수"로 간주됩니다. 저는 "?"라고 생각하고 있습니다. :) 나는 OrderOpenPrice() 값을 저장하고 내가 하고 싶은 일을 하기 위해 함수 매개변수를 수정하는 주문에 이것을 포함할 수 있습니다. 하지만 정말로? 확실히 더 간단한 방법이 있습니다! 그것은 나를 위해 오래된 숫돌로 돌아갔다. ;)

고맙습니다.

 
WhooDoo22 :
분명히 OrderModify() 매개변수 내에서 OrderOpenPrice() 함수를 사용하는 것은 오류 4051에 따라 "잘못된 함수 매개변수"로 간주됩니다.
분명히 코드가 잘못되었습니다. OrderOpenPrice() 괜찮습니다. 귀하의 orderSelect를 포함한 코드를 게시하십시오.
 

윌리엄,

분명히, 나는 당신이 당신의 지원을 제공하고 싶다면 MetaEditor에서 다운로드하고 볼 수 있는 링크에 EA를 게시했습니다. OrderSelect() 함수 는 현재 문제가 아닙니다. 그거 알아? 나는 당신을 위해 이것을 게시할 것입니다, 윌리엄.

 //***************************************************
// EMERGENCY BUY ORDER STOP LOSS PROTECTION SECTION ;
//***************************************************

   OrderSelect ( 0 ,SELECT_BY_TICKET,MODE_TRADES); // was ticket.
   if ( OrdersTotal ()> 0 )                                                                         {
   if (OrderType()==OP_BUY)                                                                     {
   if (OrderSend1== true )                                                                        {
//   if(iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)<=OrderOpenPrice()-500*Point)                     {
     
// choice 1.     
//     {OrderModify(ticket,OrderOpenPrice(),Ask-500*Point,0,0,Blue);}}}}
// choice 2.
     {OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()- 500 * Point , 0 , 0 ,Blue);}}}}

요청하신대로.

고맙습니다.

 
WhooDoo22 :

윌리엄,

분명히, 나는 당신이 당신의 지원을 제공하고 싶다면 MetaEditor에서 다운로드하고 볼 수 있는 링크에 EA를 게시했습니다. OrderSelect() 함수는 현재 문제가 아닙니다. 그거 알아? 나는 당신을 위해 이것을 게시할 것입니다, 윌리엄.

요청하신대로.

고맙습니다.

0 은 유효한 티켓 번호가 아니며 전략 테스터 에서도 OrderSelect()를 테스트하면 직접 확인할 수 있습니다. . .
 

Simon, 나는 그것을 알아내기 위해 테스트를 실행할 것이다.

고맙습니다.

 

아하! 나는 티켓 번호를 0에서 1로 바꿨고 모든 것이 시계처럼 작동했습니다. 네, 제가 틀렸습니다. William... OrderSelect() 함수 가 문제였습니다. 분명히 OrderSelect() 함수는 티켓을 선택해야 합니다. 티켓 번호가 0인 경우 EA는 어떤 티켓을 선택할까요? :오 "?". 도움을 주신 두 분께 감사드립니다.

고맙습니다.