Oh, desculpe. Confundiu a comparação e a atribuição. Está tudo bem agora. Estou ficando louco desde que me sentei para escrever. Eu escrevo mal e fico estressado com isso, e minha cabeça não funciona, embora eu soubesse disso, é claro.
A função bCheckOrders() após a abertura de uma ordem dá a entender que não há ordens, portanto ela continua abrindo
Oh meu Deus, onde diz isso?
talvez eu não tenha lido o registro corretamente?
A funçãobCheckOrders()após abrir uma ordem imprime que não há ordem, portanto, a abertura continua - por meio de OnTick() nulo - entendo que isto não é verdade.
até que a ordem seja fechada bCheckOrders() - não pode dar a entender que não há ordem.
A funçãobCheckOrders()após a abertura de uma ordem dá a entender que não há ordem, portanto a abertura continua - por meio de OnTick() nulo - entendo que isto não é verdade.
até que o pedido seja fechado bCheckOrders()- não pode mostrar ausência de um pedido.
bCheckOrders() não funciona corretamente!
Eu já lhe escrevi uma função para a contagem de pedidos.
Basta fazer assim e deve funcionar.
Ao invés de bCheckOrders(), coloque esta função
//+------------------------------------------------------------------+//| Подсчет открытых ордеров |//+------------------------------------------------------------------+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);
}
e em OnTick(), em vez de bCheckOrders(), escreva isto
//+------------------------------------------------------------------+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));
}
não é absolutamente diferente da revista anterior.
sem erros, ou qualquer outra coisa.
Você não precisa de parênteses para o laço? Parece que somente quando não há mais de uma linha você não precisa delas.
UPD:
Ah, entendi, há uma linha.
Não deve haver erros, mostre o registro
aqui estão as últimas páginas do Diário de Bordo da MT4.
este tronco é necessário?
aqui estão as últimas páginas do Diário de Bordo da MT4.
este tronco é necessário?
Aqui está a resposta em seu diário de bordo)
A função bCheckOrders() após a abertura de uma ordem, indica que não há ordens, então eles continuam abrindo
E minha cabeça não funciona em nada, embora eu soubesse disso, é claro.
Você tem uma maneira engraçada de dizer))))
Você tem uma maneira engraçada de dizer))))
Sabia escrever tarefas e comparações, mas ainda assim ficou confuso. Uma bagunça.
Não é isso que eu quero dizer...
pribludilsa #:
e minha cabeça não funciona em absoluto, embora eu soubesse disso, é claro.
Aqui está a resposta em seu diário de bordo)
A função bCheckOrders() após a abertura de uma ordem dá a entender que não há ordens, portanto ela continua abrindo
Oh meu Deus, onde diz isso?
talvez eu não tenha lido o registro corretamente?
A funçãobCheckOrders()após abrir uma ordem imprime que não há ordem, portanto, a abertura continua - por meio de OnTick() nulo - entendo que isto não é verdade.
até que a ordem seja fechada bCheckOrders() - não pode dar a entender que não há ordem.
Oh, merda. Onde diz isso?
talvez eu não tenha lido o registro corretamente?
A funçãobCheckOrders()após a abertura de uma ordem dá a entender que não há ordem, portanto a abertura continua - por meio de OnTick() nulo - entendo que isto não é verdade.
até que o pedido seja fechado bCheckOrders()- não pode mostrar ausência de um pedido.
bCheckOrders() não funciona corretamente!
Eu já lhe escrevi uma função para a contagem de pedidos.
Basta fazer assim e deve funcionar.
Ao invés de bCheckOrders(), coloque esta função
e em OnTick(), em vez de bCheckOrders(), escreva isto