Rustam Bikbulatov : 안녕하세요. 이 코드를 변경하는 방법을 알려주세요(int i=OrdersTotal()-1;i>=0;i--){
현재는 마지막으로 열린 것을 닫습니다. 그리고 반대로 맨 처음의 것이 먼저 닫히는 것이 필요합니다!
//+------------------------------------------------------------------+ //| Закрыть все позиции начиная с первых | //+------------------------------------------------------------------+
double CloseOrders()
{ for ( int i= 0 ; i< OrdersTotal (); ) { if (! OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) break ;
if ( OrderMagicNumber () != mn) break ;
int type = OrderType ();
bool result = false ;
switch (type) { //Close opened long positions caseOP_BUY : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), Slippage, CloseColor ); break ;
//Close opened short positions caseOP_SELL : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), Slippage, CloseColor ); break ; }
오래된 것에서 새로운 것으로 닫아야 할 것에 대해 이야기하고 있다면 그리드를 닫고 있는 것입니다. 그리드에 대한 약간의 경험이 있으므로 위치의 이전 위치가 아니라 로트 크기에 따라 선택해야 하며 더 큰 로트에서 작은 로트로 마감해야 한다고 자신 있게 말할 수 있습니다. 그리드가 단일 로트인 경우 마감 시 순서에 차이가 없습니다. 닫기를 위해 기성품 기능을 사용하고 이미 발명된 것을 발명하지 마십시오)
오래된 것에서 새로운 것으로 닫아야 할 것에 대해 이야기하고 있다면 그리드를 닫고 있는 것입니다. 그리드에 대한 약간의 경험이 있으므로 위치의 이전 위치가 아니라 로트 크기에 따라 선택해야 하며 더 큰 로트에서 작은 로트로 마감해야 한다고 자신 있게 말할 수 있습니다. 그리드가 단일 로트인 경우 마감 시 순서에 차이가 없습니다. 닫기를 위해 기성품 기능을 사용하고 이미 발명된 것을 발명하지 마십시오)
안녕하세요. 이 코드를 변경하는 방법을 알려주세요(int i=OrdersTotal()-1;i>=0;i--){
안녕하세요. 이 코드를 변경하는 방법을 알려주세요(int i=OrdersTotal()-1;i>=0;i--){
{
if ( /*Функция закрытия. Если вернула истину*/ )
i--;
}
이렇게 시도하십시오. 댓글 대신 주문을 마감하는 기능. 기능을 확인하지 않았습니다. 그리고 여기에서는 매번 정확히 숫자를 세기 위한 함수를 호출 해야 할 필요가 있을 것이라고 생각합니다. 왜냐하면 주문건수가 줄어듭니다.
이 옵션을 시도해 볼 수도 있습니다.
/*Функция закрытия ордера*/
어쩐지 어색하게 닫힘)
정확하지 않지만 지금까지는 (일부 빌드 까지 ) 작동합니다.
안녕하세요. 이 코드를 변경하는 방법을 알려주세요(int i=OrdersTotal()-1;i>=0;i--){
//| Закрыть все позиции начиная с первых |
//+------------------------------------------------------------------+
double CloseOrders()
{
for ( int i= 0 ; i< OrdersTotal (); )
{
if (! OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
break ;
if ( OrderMagicNumber () != mn)
break ;
int type = OrderType ();
bool result = false ;
switch (type)
{
//Close opened long positions
case OP_BUY : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), Slippage, CloseColor );
break ;
//Close opened short positions
case OP_SELL : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), Slippage, CloseColor );
break ;
}
if (result == false )
{
Print ( "Order " , OrderTicket () , " failed to close. Error:" , GetLastError () );
i++;
}
}
return ( True );
}
// End
어쩐지 어색하게 닫힘)