나는 어떻게 든 그것이 옳지 않다고 생각하고 작동하지 않는 주문을 선택합니다(OrderProfit() <0), 내가 필요한 주문을 구체적으로 지정하는 방법. 나는 그가 마지막 주문이 테이크에 의해 닫히고 거기에 다른 사람이 없을 때 왜 주문을 건너뛰는지 이해하지 못합니다. 역사에서 뭔가 다르게 분류할 필요가 있다면 사이클을 구축해야 합니까?
for ( int w= OrdersHistoryTotal ()- 1 ; w>= 0 ; w--) { if ( OrderSelect (w, SELECT_BY_POS , MODE_HISTORY ))
Expert Advisors는 비슷한 조건의 주기를 가지고 있고 제대로 작동하지만 OrdersTotal() 에 따라 작동하기 때문입니다.
for ( int n= OrdersTotal ()- 1 ;n>= 0 ;n--) { if ( OrderSelect (n, SELECT_BY_POS )) { if ( OrderMagicNumber ()==magic) { if ( OrderType ()> OP_SELL )
신속하게 수행하면 마지막으로 수익성이없는 것이 주어질 것입니다. 어떻게해야하는지 그리고 스스로 수정해야 할 매개 변수는 무엇인지 알아낼 것입니다.
감사합니다 해결했습니다..
이익을 취한 후 로트를 원래 가치로 되돌리려면 어떻게 해야 합니까?
{
lot= 0.1
}
감사합니다 해결했습니다..
이익을 취한 후 로트를 원래 가치로 되돌리려면 어떻게 해야 합니까?
{
lot= 0.1
}
나는 계획이있다
if (OrdersTotal()==0)
{
오리지널 로트로 오픈
}
또 다른
...
즉, 주문이 없으면 이전 로트가 더 이상 열리지 않습니다.
물론, 당신은 각각을 암기 할 수 있지만 어떻게하는지 말하지 않습니다.지정된 임계값에 도달하면 카운터를 시작하고 초기 값으로 재설정해야 합니다.
{
//---
int b_STOP,s_STOP,b= 0 ,s= 0 ;
for ( int i= 0 ; i< OrdersTotal (); i++)
{
if ( OrderSelect (i, SELECT_BY_POS )== true )
{
if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=Magic) continue ;
if ( OrderType ()== OP_BUY ) b++;
if ( OrderType ()== OP_SELL ) s++;
if ( OrderType ()== OP_BUYSTOP ) b_STOP++;
if ( OrderType ()== OP_SELLSTOP ) s_STOP++;
}
if ( OrderType ()== OP_BUY )
{
if (b>= 1 &&s== 1 ) //бай позиций больше или 1 и появилась SELL позиция
{
OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Bid , Digits ), 3 ,CLR_NONE);
CLOSEORDER( OP_SELL );
}
}
}
}
OrderProfit()<0 함수가 작동하지 않는 이유를 설명할 수 있습니까?
{
if ( OrderSelect (q, SELECT_BY_POS , MODE_HISTORY ))
{
if ( OrderType ()< 2 && OrderMagicNumber ()==magic)
{
if ( OrderProfit ()< 0 )
{
if ( DayOfWeek ()== 1 )
{
day1++;
Print ( "Понедельник SL=" ,day1);
}
if ( DayOfWeek ()== 2 )
{
day2++;
Print ( "Вторник SL=" ,day2);
}
}
}
}
}
요일에 스톱로스가 몇 개인지 보고 싶어요
{
if ( OrderSelect (l, SELECT_BY_POS , MODE_HISTORY ))
{
if ( OrderProfit ()< 0 && OrderType ()< 2 )
{
oldticket= OrderTicket ();
}
if (oldticket>=ticket)
{
ticket=oldticket;
lot= OrderLots ()* 4 ;
}
if ( OrderProfit ()> 0 && OrderType ()< 2 )
{
lot= 0.01;
}
}
}
그리고 여기에서 내가 이해하는 것과 같은 이유로 작동하지 않습니다.
OrderProfit()<0 함수가 작동하지 않는 이유를 설명할 수 있습니까?
{
if ( OrderSelect (q, SELECT_BY_POS , MODE_HISTORY ))
{
if ( OrderType ()< 2 && OrderMagicNumber ()==magic)
{
if ( OrderProfit ()< 0 )
{
if ( DayOfWeek ()== 1 )
{
day1++;
Print ( "Понедельник SL=" ,day1);
}
if ( DayOfWeek ()== 2 )
{
day2++;
Print ( "Вторник SL=" ,day2);
}
}
}
}
}
요일에 스톱로스가 몇 개인지 보고 싶어요
{
if ( OrderSelect (l, SELECT_BY_POS , MODE_HISTORY ))
{
if ( OrderProfit ()< 0 && OrderType ()< 2 )
{
oldticket= OrderTicket ();
}
if (oldticket>=ticket)
{
ticket=oldticket;
lot= OrderLots ()* 4 ;
}
if ( OrderProfit ()< 0 && OrderType ()< 2 )
{
lot= 0.01;
}
}
}
그리고 여기에서 내가 이해하는 것과 같은 이유로 작동하지 않습니다.
DayOfWeek()는 서버 의 마지막 알려진 시간의 요일 일련 번호를 반환하기 때문입니다.
그리고 주문이 마감된 요일이 필요합니다. TimeDayOfWeek(OrderCloseTime());
DayOfWeek()는 서버 의 마지막 알려진 시간의 요일 일련 번호를 반환하기 때문입니다.
그리고 주문이 마감된 요일이 필요합니다. TimeDayOfWeek(OrderCloseTime());
그리고 결과는 마치 ( OrderProfit () < 0 )이 무시되고 루프가 발생하는 것처럼 변수의 값이 큽니다.
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Понедельник SL= 963666
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Вторник SL= 1430207
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Понедельник SL= 963665
그리고 많은 주기에 대해? 여기에 잘못 복사하고 if ( OrderProfit ()> 0 && OrderType ()< 2 ) 기호를 수정했지만 이 조건이 없으면 루프가 올바르게 작동하지 않으면 본질이 변경되지 않습니다. 왜 그런 겁니까?
그리고 결과는 마치 ( OrderProfit () < 0 )이 무시되고 루프가 발생하는 것처럼 변수의 값이 큽니다.
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Понедельник SL= 963666
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Вторник SL= 1430207
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Понедельник SL= 963665
그리고 많은 주기에 대해? 여기에 잘못 복사하고 if ( OrderProfit ()> 0 && OrderType ()< 2 ) 기호를 수정했지만 이 조건이 없으면 루프가 올바르게 작동하지 않으면 본질이 변경되지 않습니다. 왜 그런 겁니까?
day1과 day2는 어디에 선언되어 있습니까?
day1과 day2는 어디에 선언되어 있습니까?
나는 어떻게 든 그것이 옳지 않다고 생각하고 작동하지 않는 주문을 선택합니다 ( OrderProfit () < 0 ), 내가 필요한 주문을 구체적으로 지정하는 방법. 나는 그가 마지막 주문이 테이크에 의해 닫히고 거기에 다른 사람이 없을 때 왜 주문을 건너뛰는지 이해하지 못합니다. 역사에서 뭔가 다르게 분류할 필요가 있다면 사이클을 구축해야 합니까?
{
if ( OrderSelect (w, SELECT_BY_POS , MODE_HISTORY ))
Expert Advisors는 비슷한 조건의 주기를 가지고 있고 제대로 작동하지만 OrdersTotal () 에 따라 작동하기 때문입니다.
{
if ( OrderSelect (n, SELECT_BY_POS ))
{
if ( OrderMagicNumber ()==magic)
{
if ( OrderType ()> OP_SELL )
{
//---
int b_STOP,s_STOP,b= 0 ,s= 0 ;
for ( int i= 0 ; i< OrdersTotal (); i++)
{
if ( OrderSelect (i, SELECT_BY_POS )== true )
{
if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=Magic) continue ;
if ( OrderType ()== OP_BUY ) b++;
if ( OrderType ()== OP_SELL ) s++;
if ( OrderType ()== OP_BUYSTOP ) b_STOP++;
if ( OrderType ()== OP_SELLSTOP ) s_STOP++;
}
if ( OrderType ()== OP_BUY )
{
if (b>= 1 &&s== 1 ) //бай позиций больше или 1 и появилась SELL позиция
{
OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Bid , Digits ), 3 ,CLR_NONE);
CLOSEORDER( OP_SELL );
}
}
}
}
한 주기 내에서는 이 문제가 해결되지 않습니다. 이 주기에서는 삭제할 주문 티켓을 배열에 저장하고 다른 주기에서는 티켓별로 삭제합니다.
또한 중괄호와 혼동을 일으키며 OrderSelect{} 블록 경계 외부의 주문으로 작업하는데 이는 잘못된 것입니다.