for ( int i = 0 ; i <= OrdersTotal (); i++)
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
return ( false );
그리고 여기에 사이클 브래킷이 필요하지 않습니까? 한 줄 이상이 없을 때만 넣을 수없는 것 같습니다.
기능 bCheckOrders() 주문을 연 후 주문이 없는 것으로 표시되므로 void OnTick()으로 열기가 계속됩니다 . 나는 이것이 그렇지 않다는 것을 이해합니다.
주문이 종료될 때까지 bCheckOrders()- 주문이 없다고 표시할 수 없습니다. 안 그래?
bCheckOrders() 가 제대로 작동하지 않습니다!
이미 주문을 계산하는 기능을 작성했습니다 ...
이렇게 하면 모든 것이 작동합니다.
bCheckOrders()를 이 함수로 바꿉니다.
//+------------------------------------------------------------------+//| Подсчет открытых ордеров |//+------------------------------------------------------------------+int CountOrders()
{
int cnt= 0 ;
int i= OrdersTotal ()- 1 ;
for ( int pos=i;pos>= 0 ;pos--)
{
if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol()== _Symbol )
{
if (OrderMagicNumber()==Magic) cnt++;
}
}
}
return (cnt);
}
bCheckOrders() 대신 OnTick ()에서 다음과 같이 작성하십시오.
//+------------------------------------------------------------------+voidOnTick ()
{
// Получим значение индикатора
dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif (CountOrders()== 0 )
{
// Если появился сигнал на покупку, то откроем ордер на покупкуif (bSignalBuy() == true )
vOrderOpenBuy();
// Если появился сигнал на продажу, то откроем ордер на продажуif (bSignalSell() == true )
vOrderOpenSell();
}
// Проверяем, вышел ли текущий баланс по открытому ордеру за вилку из внешних переменных CountLoss и CountProfitif (GetProfitFromStart()>CountProfit || GetProfitFromStart()<CountLoss*- 1 )
{
// Если да, то закроем ордер по текущей цене, не дожидаясь стопа или тейка
CloseOrder();
}
DrawLABEL( "lab_Take" , 1 , 5 , 0 ,Color(GetProfitFromStart()> 0 ,Lime,Red), StringConcatenate ( "Profit: " ,DoubleToStr(GetProfitFromStart(), 2 ),AC));
}
만들어진. 이전 잡지와 전혀 다르지 않다.
오류 또는 아무것도 없습니다.
그리고 여기에 사이클 브래킷이 필요하지 않습니까? 한 줄 이상이 없을 때만 넣을 수없는 것 같습니다.
상향:
이해합니다. 여기에 한 줄이 있습니다.
오류가 없어야 합니다. 로그를 보여주세요.
다음은 MT4 로그의 마지막 페이지입니다.
이 잡지가 필요합니까?
다음은 MT4 로그의 마지막 페이지입니다.
이 일지가 필요합니까?
다음은 귀하의 일기장에 있는 답변입니다.)
주문을 연 후 bCheckOrders() 함수는 주문이 없음을 나타내므로 열기가 계속됩니다.
물론 머리는 알고 있었지만 머리는 전혀 작동하지 않습니다.
당신이 표현하는 좋은 생각))))
당신이 표현하는 좋은 생각))))
내 말은, 할당 및 비교를 작성하는 방법을 알고 있었지만 여전히 혼란스럽습니다. 나는 혼란스러워졌다.
나는 그것에 대해 이야기하는 것이 아닙니다 ...
프리블루딜사 # :
물론 머리는 알고 있었지만 머리는 전혀 작동하지 않습니다 .
다음은 귀하의 일기장에 있는 답변입니다.)
주문을 연 후 bCheckOrders() 함수는 주문이 없음을 나타내므로 열기가 계속됩니다.
젠장. 어디에 명시되어 있습니까?
내가 이 잡지를 잘못 읽고 있는 것은 아닐까?
기능 bCheckOrders() 주문을 연 후 주문이 없는 것으로 표시되므로 void OnTick()으로 열기가 계속됩니다 . 나는 이것이 그렇지 않다는 것을 이해합니다.
주문이 종료될 때까지 bCheckOrders()- 주문이 없다고 표시할 수 없습니다. 안 그래?
젠장. 어디에 명시되어 있습니까?
내가 이 잡지를 잘못 읽고 있는 것은 아닐까?
기능 bCheckOrders() 주문을 연 후 주문이 없는 것으로 표시되므로 void OnTick()으로 열기가 계속됩니다 . 나는 이것이 그렇지 않다는 것을 이해합니다.
주문이 종료될 때까지 bCheckOrders()- 주문이 없다고 표시할 수 없습니다. 안 그래?
bCheckOrders() 가 제대로 작동하지 않습니다!
이미 주문을 계산하는 기능을 작성했습니다 ...
이렇게 하면 모든 것이 작동합니다.
bCheckOrders()를 이 함수로 바꿉니다.
bCheckOrders() 대신 OnTick ()에서 다음과 같이 작성하십시오.