순서대로 시작합시다. 먼저, 마지막으로 닫힌 위치 를 찾아 그것이 take에 의해 닫혔는지 확인합니다:
int j=- 1 ;
datetime t;
// Поищем в цикле последнюю закрытую позицию, которая закрылась по TakeProfitfor ( int i= 0 ; i< OrdersHistoryTotal (); i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if ( OrderSymbol ()!= Symbol ()) continue ;
if ( OrderType ()> 1 ) continue ;
if ( OrderMagicNumber ()== 1000 || OrderMagicNumber ()== 2000 ) {
if (t< OrderCloseTime ()) {
t= OrderCloseTime ();
j=i;
}
}
}
}
if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
if ( NormalizeDouble ( OrderClosePrice ()- OrderTakeProfit (), Digits )< 0.5 * Point ) {
Alert ( "Позиция с тикетом #" , OrderTicket (), " закрыта по TakeProfit, закрываем остальные прозиции и удаляем отложенные ордера" );
// Здесь код для закрытия всех открытых позиций (тоже в цикле)// Здесь код для удаления всех отложенных ордеров (также в цикле)
}
}
이것:
// Здесь код для закрытия всех открытых позиций (тоже в цикле)// Здесь код для удаления всех отложенных ордеров (также в цикле)
즉, 라인 Alert ( "OrderTicket( )" , OrderTicket ( )); 마지막주기가 아직 커밋되지 않았다고 말할 수 있습니다 !!
여기 로그가 있습니다 이전에는 종종 코드를 다시 작성했습니다. 내 의견으로는 4108 및 4050에서 오류가 자주 발생했습니다. 이제는 오류가 없습니다 !! 예, 어쨌든 작동하지 않습니다!
글쎄, 네, 그렇게 되었고 개가 뒤적거렸습니다.
if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()
|| OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()) {
그래서 사실이야, se .. Chezh 내가 라인에서 똑똑했습니까?
글쎄, 네, 그렇게 되었고 개가 뒤적거렸습니다.
if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()
|| OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()) {
그래서 사실이야, se .. Chezh 내가 라인에서 똑똑했습니까?
이 순간까지만 원격 대기 주문이 될 수 있으며 결과는 비정상적일 것입니다 ;)
나는 역사의 유행이 아니라 여기에서 먼 것을 선택하지 않는다는 것을 이해하지 못합니다. 알겠습니다. 아니오, 교착 상태입니다.
-아아!! 그래서 지금은 양쪽을 괄호로 묶겠습니다!! 감사합니다!!!!!
휴!!
그래서 지금은 샤워 파솔에 있습니다. 로스트 ..
나는 역사의 유행이 아니라 여기에서 먼 것을 선택하지 않는다는 것을 이해하지 못합니다. 알겠습니다. 아니오, 교착 상태입니다.
삭제해야 하는 보류 중인 주문 이 1개 있고 해당 라인에 도달했다고 가정해 보겠습니다(읽기 쉽도록 연산자로 구분).
그래서 우리는 이 영장이 있습니다:
1) 삭제하는 동안:
) 우리는 운이 좋았고 그는 떠났다
b) 가격이 너무 비싸서 / 서버에 과부하가 걸리거나 인터넷이 막 다운되어 삭제되지 않을 수 있습니다. 그러나 어쨌든 계속합니다
2) 모든 것이 나쁘다고 쓴다면
3) 주문을 닫습니다(첫 번째 단락에서 삭제한 보류 중!!)
결과 ... 100% 예측할 수는 없지만 분명히 또 다른 실수
4) 이에 대한 메시지 표시
글쎄, 네, 그렇게 되었고 개가 뒤적거렸습니다.
if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()
|| OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()) {
그래서 사실이야, se .. Chezh 내가 라인에서 똑똑했습니까?
이런 식으로 합시다 ... 아무도 자신을 쏘지 않고 명령을받지 않도록 ... :))
순서대로 시작합시다. 먼저, 마지막으로 닫힌 위치 를 찾아 그것이 take에 의해 닫혔는지 확인합니다:
이것:
숙제가 될 것입니다... :)