[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 502

 
편집 | 삭제 미끄러짐을 고려하고 130-134 오류가 없는 주문을 위한 기능을 찾도록 도와주세요.
 
nuan :
편집 | 삭제 미끄러짐을 고려하고 130-134 오류가 없는 주문을 위한 기능을 찾도록 도와주세요.

당신의 선택을 보여주세요.
 
NumderOrder=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-SL*Point,Ask+TP*Point,"BUY",0,0,Red);

인쇄( GetLastError() );

SL 및 TP 값에 대해 134를 발행하고 종종 주문을 전혀 하지 않습니다.

열림 if(NumberOfOrders(NULL)==0)


테스터에서 하나의 주문 대신 지속적으로 팩을 배치합니다. 왜 내가 이해할 수 없는지, 즉. 이 쌍에 다른 사람이 열려 있지 않으면 그는 주문해야 합니다.

 
죄송합니다. 왜 하나의 주문이 확인되지 않았습니까?
 
nuan :
NumderOrder=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-SL*Point,Ask+TP*Point,"BUY",0,0,Red);

인쇄(GetLastError());

SL 및 TP 값에 대해 134를 발행하고 종종 주문을 전혀 하지 않습니다.

열림 if(NumberOfOrders(NULL)==0)


테스터에서 하나의 주문 대신 지속적으로 팩을 배치합니다. 왜 내가 이해할 수 없는지, 즉. 이 쌍에 다른 사람이 열려 있지 않으면 그는 주문해야 합니다.


ERR_NOT_ENOUGH_MONEY 134 작업을 완료하기에는 자금이 충분하지 않습니다.
 

안녕하세요. 저는 어드바이저를 만들고 있습니다. 특정 조건에서 2개의 주문을 엽니다(비유적으로 가격이 오르고 내릴 때). 올리면 2개가 열리고 가격이 내려가면 이 2개가 닫히고 새로운 2개가 열립니다. 한 주문은 이익 실현 없이 진행되고 두 번째 주문은 테이크가 있습니다. 문제는 두 번째에 있습니다. 그의 죽음의 시간이 올 때 그는 선택되지 않았습니다. 주문을 삭제하는 코드는 다음과 같습니다.

 for ( int a = 0 ; a < OrdersTotal ()- 1 ; a++)
     if ( OrderSelect (a, SELECT_BY_POS, MODE_TRADES))
         if ( OrderComment () == "MyOrd" && OrderType () == OP_SELL)
             OrderClose ( OrderTicket (), NormalizeDouble ( OrderLots (), Digits ), NormalizeDouble (Ask, Digits ), 0 );

OP_BUY도 마찬가지입니다. 나는 이것이 펜이나 다른 고문이 아니라 내 고문이 개설한 주문이라는 것을 확인하기 위해 댓글을 비교합니다. 다음은 OrderSelect의 문제입니다. 이익 실현 주문을 선택하고 싶지 않을 뿐입니다. 해당 숫자에 도달하면 OrderSelect는 false를 반환합니다. 테스터 로그에는 오류가 없습니다. GetLastError는 모든 것이 정상이라고 말합니다(0 반환). 그가 선택되지 않은 이유는 무엇입니까? 그가 그것을 선택할 수 없다면 왜 오류가 없습니까? 모두에게 감사합니다.

 
후속 질문입니다. 테스터에서 기간을 월+로 설정하면 결과에 5자리 숫자 가 나타나는 이유는 무엇입니까? 가격이 설정되는 곳마다 NormalizeDouble(SomeValue, Digits)이 있습니다. 그리고 결과에서만 잡지는 반올림 기능에 대해 아직 알지 못했을 때 저주했지만 맹세하지 않았습니다.
 

상태

a < OrdersTotal ()- 1

모든 반복에서 확인됩니다.

think - 와 같을 , 그리고 OrdersTotal() -1 - 첫 번째 반복 후

 
Solree :

OrderClose(OrderTicket(), NormalizeDouble(OrderLots(), Digits), NormalizeDouble(Ask, Digits), 0);

로트와 가격은 다른 자릿수 를 가지고 있습니다.
 

Solree :

NormalizeDouble ( OrderLots (), Digits )


그러나 많은 부분을 정상화하기가 쉽지 않습니다.
허용 로트 변경 단계를 고려해야 합니다.
예를 들어, 단계가 0.01이면 2로 정규화합니다.
단계가 0.1이면 1로 정규화합니다.
사유: