링크 감사합니다!!! 나는 공부할 것입니다 :) 시간이 지남에 따라 매직 넘버와 주문 유형(buylimit 또는 Selllimit) - 좋은 생각입니다. 하지만 당신은 아마도 나를 오해했을 것입니다. 내 문제는 주문을 지정하는 것이 아니라 제거하는 방법입니다. 나는 마지막에서 두 번째를 정의하는 방법에 관계없이 마지막 보류 주문만 삭제할 수 있습니다.
// ------------------------------------------------Ищете Ваши отложенники---------------------------------int orderType;
for ( int orderIndex = ( OrdersTotal () - 1 ); orderIndex >= 0 ; orderIndex--)
{
if (! OrderSelect (orderIndex, SELECT_BY_POS))
{
continue ;
}
if (( OrderSymbol () != Symbol ()) || ( OrderMagicNumber () != MagicNumber))
{
continue ;
}
orderType = OrderType ();
if ((orderType == OP_BUY) || (orderType == OP_SELL))
{
continue ;
}
ticket = OrderTicket ( ); // Номер ордера
orderLots = OrderLots (); // Lots
SL = OrderStopLoss (); // Значение StopLoss ордера
TP = OrderTakeProfit (); // Значение TakeProfit ордераif (ticket> 0 ) //
{
while ( OrderSelect (ticket,SELECT_BY_TICKET)==false) // Если ордер выбран
{
Sleep ( 100 );
}
OrderDelete (ticket, CLR_NONE ); // и удаляете их
}
return ( 0 );
}
첫 번째 게시물에서 이해했듯이 "다음 예를 사용하여 결정하지만 첫 번째 보류 주문 대신 마지막 보류 주문 만 닫습니다. 첫 번째 보류 주문에 대한 모든 조건이 충족되지만 오류를 찾도록 도와주세요!!! !!!!!!!!" - 나머지 보류 주문 중 일부를 시장 주문으로 전환한 후 나머지 보류 주문을 모두 삭제해야 합니다. 이 코드를 거래 조건에 입력하고 이동하세요.
Roman. : 첫 번째 게시물에서 알 수 있듯이 "다음 예를 사용하여 결정하지만 첫 번째 보류 주문에 대한 모든 조건이 충족되지만 첫 번째 보류 주문 대신 마지막 보류 주문만 닫습니다. 오류를 찾도록 도와주세요!! !!!!!!!!" - 나머지 보류 주문 중 일부를 시장 주문으로 전환한 후 나머지 보류 주문을 모두 삭제해야 합니다. 이 코드를 거래 조건에 입력하고 이동하세요.
Roman. : 첫 번째 게시물에서 알 수 있듯이 "다음 예를 사용하여 결정하지만 첫 번째 보류 주문에 대한 모든 조건이 충족되지만 첫 번째 보류 주문 대신 마지막 보류 주문만 닫습니다. 오류를 찾도록 도와주세요!! !!!!!!!!" - 나머지 보류 주문 중 일부를 시장 주문으로 전환한 후 나머지 보류 주문을 모두 삭제해야 합니다. 이 코드를 거래 조건에 입력하고 이동하세요.
첫 번째 게시물에서 알 수 있듯이 "다음 예를 사용하여 결정하지만 첫 번째 보류 주문에 대한 모든 조건이 충족되지만 첫 번째 보류 주문 대신 마지막 보류 주문만 닫습니다. 오류를 찾도록 도와주세요!! !!!!!!!!" - 나머지 보류 주문 중 일부를 시장 주문으로 전환한 후 나머지 보류 주문을 모두 삭제해야 합니다. 이 코드를 거래 조건에 입력하고 이동하세요.
// ------------------------------------------------Ищете Ваши отложенники---------------------------------int orderType;
for ( int orderIndex = ( OrdersTotal () - 1 ); orderIndex >= 0 ; orderIndex--)
{
if (! OrderSelect (orderIndex, SELECT_BY_POS))
{
continue ;
}
if (( OrderSymbol () != Symbol ()) || ( OrderMagicNumber () != MagicNumber))
{
continue ;
}
orderType = OrderType ();
if ((orderType == OP_BUY) || (orderType == OP_SELL))
{
continue ;
}
ticket = OrderTicket ( ); // Номер ордера
orderLots = OrderLots (); // Lots
SL = OrderStopLoss (); // Значение StopLoss ордера
TP = OrderTakeProfit (); // Значение TakeProfit ордераif (ticket> 0 ) //
{
while ( OrderSelect (ticket,SELECT_BY_TICKET)==false) // Если ордер выбран
{
Sleep ( 100 );
}
OrderDelete (ticket, CLR_NONE ); // и удаляете их
}
return ( 0 );
}
컴팩트 코드를 작성해 본 적이 있습니까?
다음은 자신의 코드입니다.
// ------------------------------------------------Ищете Ваши отложенники---------------------------------int orderType;
for ( int orderIndex = ( OrdersTotal () - 1 ); orderIndex >= 0 ; orderIndex--) {
if (! OrderSelect (orderIndex, SELECT_BY_POS)) continue ;
if (( OrderSymbol () != Symbol ()) || ( OrderMagicNumber () != MagicNumber)) continue ;
orderType = OrderType ();
if ((orderType == OP_BUY) || (orderType == OP_SELL)) continue ;
ticket = OrderTicket ( ); // Номер ордера
orderLots = OrderLots (); // Lots
SL = OrderStopLoss (); // Значение StopLoss ордера
TP = OrderTakeProfit (); // Значение TakeProfit ордераif (ticket> 0 ) {
while ( OrderSelect (ticket,SELECT_BY_TICKET)==false) // Если ордер выбранSleep ( 100 );
OrderDelete (ticket, CLR_NONE ); // и удаляете их
}
return ( 0 );
}
시도해 봤습니다... :-))) 파스칼 이후로도 그 습관은 남아있습니다... 가독성은 더 나빠요... 특히 너무 "시작"하지 않은 사람들에게는... :-))) 네, 그리고 들여쓰기 중첩 루프 및 너비 조건 탭 또는 3개의 공백에서 작업에 필요합니다. 극단적으로 ... :-)))
각 틱으로 보류 중인 주문 수를 다시 계산합니다.
그 수가 적다면 하나의 보류 주문이 시장 주문으로 바뀌었습니다.
나머지(불필요하게 됨)는 모두 삭제할 수 있습니다.
삭제 당시 두 주문 모두 시장가 주문입니다. 그러나 마지막 보류 주문 이 삭제되거나 실행되더라도 해당 티켓은 여전히 실행되고 오류가 발생합니다. 그리고 끝에서 두 번째는 매달려 있습니다.
링크 감사합니다!!! 나는 공부할 것입니다 :) 시간이 지남에 따라 매직 넘버와 주문 유형(buylimit 또는 Selllimit) - 좋은 생각입니다. 하지만 당신은 아마도 나를 오해했을 것입니다. 내 문제는 주문을 지정하는 것이 아니라 제거하는 방법입니다. 나는 마지막에서 두 번째를 정의하는 방법에 관계없이 마지막 보류 주문만 삭제할 수 있습니다.
첫 번째 게시물에서 알 수 있듯이 "다음 예를 사용하여 결정하지만 첫 번째 보류 주문에 대한 모든 조건이 충족되지만 첫 번째 보류 주문 대신 마지막 보류 주문만 닫습니다. 오류를 찾도록 도와주세요!! !!!!!!!!" - 나머지 보류 주문 중 일부를 시장 주문으로 전환한 후 나머지 보류 주문을 모두 삭제해야 합니다. 이 코드를 거래 조건에 입력하고 이동하세요.
감사해요!!! 이렇게 어려울 줄 몰랐어요 :)
첫 번째 게시물에서 알 수 있듯이 "다음 예를 사용하여 결정하지만 첫 번째 보류 주문에 대한 모든 조건이 충족되지만 첫 번째 보류 주문 대신 마지막 보류 주문만 닫습니다. 오류를 찾도록 도와주세요!! !!!!!!!!" - 나머지 보류 주문 중 일부를 시장 주문으로 전환한 후 나머지 보류 주문을 모두 삭제해야 합니다. 이 코드를 거래 조건에 입력하고 이동하세요.
한두줄이면 될 것 같았는데... :)
삭제 당시 두 주문 모두 시장가 주문입니다. 그러나 마지막 보류 주문이 삭제되거나 실행되더라도 해당 티켓은 여전히 실행되고 오류가 발생합니다. 그리고 끝에서 두 번째는 매달려 있습니다.
이것이 어떻게 가능한지 상상조차 할 수 없습니다.
보류 중인 주문 을 다시 계산한 후 Expert Advisor가 하나의 주문을 계산하지 않으면 즉시 나머지 주문을 삭제하라는 명령을 내립니다.
불필요한 지연기를 제거하는 작업은 여는 작업보다 반드시 선행해야 합니다(앞에 와야 함).
첫 번째 게시물에서 알 수 있듯이 "다음 예를 사용하여 결정하지만 첫 번째 보류 주문에 대한 모든 조건이 충족되지만 첫 번째 보류 주문 대신 마지막 보류 주문만 닫습니다. 오류를 찾도록 도와주세요!! !!!!!!!!" - 나머지 보류 주문 중 일부를 시장 주문으로 전환한 후 나머지 보류 주문을 모두 삭제해야 합니다. 이 코드를 거래 조건에 입력하고 이동하세요.
다음은 자신의 코드입니다.
한두줄이면 될 것 같았는데... :)
잘. artmedia70 (24.07.2011 20:01) 모든 것을 거의 두 줄로 압축했습니다. 당신이 원하는대로.)))
도와주세요, 내 오류가 어디에 있습니까? 그 의미는 주문이 닫힌 바에서 주문이 열리지 않아야한다는 것입니다.
그러나 테스터에서는 주문이 닫힌 후에도 조건이 계속 충족되고 같은 방향으로 또 다른 1개의 주문이 열립니다.
컴팩트 코드를 작성해 본 적이 있습니까?
다음은 자신의 코드입니다.
제발 도와주세요, 내 오류는 어디에 있습니까? 그 의미는 주문이 닫힌 바에서 주문이 열리지 않아야한다는 것입니다.
그러나 테스터에서는 주문이 닫힌 후에도 조건이 계속 충족되고 같은 방향으로 또 다른 1개의 주문이 열립니다.
도움말 은 , 또한 검색에 Google을 입력합니다. 예: 하나의 바 site:mql4.com에서 하나의 주문 열기 및 닫기 - 그러면 만족할 것입니다.