Boa tarde! Por favor, ajude-me com a modificação do pedido, ou seja, o ciclo de seleção do pedido para sua condição. Primeiro encontro uma ordem acionada na TakeProfit, é uma ordem específica com um bilhete tácito. Assim, o loop falha cerca de uma vez em cada dez, o que é indicado pela diferença de linhas verdes e azuis no testador. E visualização - parar a perda às vezes não se move.
Em geral, ajude, por favor!
Condição
if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
1 .Выполняется, если в истории термина нет ордеров, и продолжать цикл в таком случае не имеет смысла.
2. Чтобы найти ордер, сработавший именно по тейкпрофиту надо сравнить значение ТП со значением цены закрытия ордера
3. Если вам нужен не любой ордер,закрытый по ТП, надо найти последний.
4. Еси в if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)) используется значение tucket, Выбранное в предыдущем цикле, ордер нельзя модифицировать, потому, что он уже закрыт.
se (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continuar; No meu loop, é assim - se não há ordens no histórico do terminal, e não faz sentido continuar o loop nesse caso, então continue!
1.executado se não houver ordens no histórico do terminal e não faz sentido continuar o ciclo nesse caso.
Obrigado!!! É aí que tudo vai acontecer. Oh, meu Deus! Como ele mesmo se modificou de vez em quando?
2. Para encontrar um pedido acionado exatamente no Take Profit, devemos comparar o valor do TP com o preço de fechamento do pedido
Primeiro seleciono uma determinada ordem no loop da história e depois pareço compará-la dessa forma.
Se uma ordem específica, ou seja, você sabe o número do bilhete, não precisa de um ciclo, basta selecionarOrderSelect(ticket,SELECT_BY_TICKET, MODE_HISTORY)
se (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continuar; no meu loop é assim - se não há ordens no termo histórico, e não faz sentido continuar o loop nesse caso, então continue!
Então é assim, não é?
Uau, enigma!!!
Depoisquebrar ouretornar.continuar; -- o operador da continuação do ciclo.
Entendendo que você vai aprender e para aprender você escreve algo... Pelo menos arranjei seus parênteses de tal forma que, em minha opinião, eles desempenham um papel.
e mesmo que seu código tenha dado 24 erros no compilador!!! ainda obrigado até mesmo pela ajuda descuidada.... para a idéia... (funciona agora - embora eu tenha tentado fazer dessa forma em princípio, mas a pontuação foi um problema)
Boa tarde! Por favor, ajude-me com a modificação do pedido, ou seja, o ciclo de seleção do pedido para sua condição. Primeiro encontro uma ordem acionada na TakeProfit, é uma ordem específica com um bilhete tácito. Assim, o loop falha cerca de uma vez em cada dez, o que é indicado pela diferença de linhas verdes e azuis no testador. E visualização - parar a perda às vezes não se move.
Em geral, ajude, por favor!
Condição
1.executado se não houver ordens no histórico do terminal e não faz sentido continuar o ciclo nesse caso.
Obrigado!!! É aí que tudo vai acontecer. Oh, meu Deus! Como ele mesmo se modificou de vez em quando?
2. Para encontrar um pedido acionado exatamente no Take Profit, devemos comparar o valor do TP com o preço de fechamento do pedido
Primeiro seleciono uma determinada ordem no loop da história e depois pareço compará-la dessa forma.
se (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continuar; No meu loop, é assim - se não há ordens no histórico do terminal, e não faz sentido continuar o loop nesse caso, então continue!
Então é assim, não é?
Uau, enigma!!!
1.executado se não houver ordens no histórico do terminal e não faz sentido continuar o ciclo nesse caso.
Obrigado!!! É aí que tudo vai acontecer. Oh, meu Deus! Como ele mesmo se modificou de vez em quando?
2. Para encontrar um pedido acionado exatamente no Take Profit, devemos comparar o valor do TP com o preço de fechamento do pedido
Primeiro seleciono uma determinada ordem no loop da história e depois pareço compará-la dessa forma.
Se uma ordem específica, ou seja, você sabe o número do bilhete, não precisa de um ciclo, basta selecionarOrderSelect(ticket,SELECT_BY_TICKET, MODE_HISTORY)
se (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continuar; no meu loop é assim - se não há ordens no termo histórico, e não faz sentido continuar o loop nesse caso, então continue!
Então é assim, não é?
Uau, enigma!!!
Depoisquebrar ouretornar.continuar; -- o operador da continuação do ciclo.
Então, por que você está comparando a mesma coisa um monte de vezes seguidas?
Bem, como você acha que deve ser comparado?
if(Stoch_1>Stoch_2) { flag1=1 ; Imprimir (flag1,flag2,flag3,flag4); }
if(Stoch_1<Stoch_2 && flag1==1) flag2=1 ; Imprimir (flag1,flag2,flag3,flag4); }
if ((Stoch_1>Stoch_2) && flag1===1 && flag2====1) {flag3=1; Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav");}
if(Stoch_1<Stoch_2 && flag1===1 && flag2===1 && flag3===1) flag4=1;
{Imprimir (bandeira1,bandeira2,bandeira3,bandeira4);}
if(Stoch_1>Stoch_2 && flag1===1 && flag2====1 && flag3===1 && flag4===1)
{OrderSend (Symbol( ), OP_SELL, 0,01 ,Bid, 0, 0, 0, NULL, 450, 0, CLR_NONE);
Imprimir ("OUT");}
flag1=0;
flag2=0;
flag3=0;
flag4=0;
Entendendo que você vai aprender e para aprender você escreve algo... Pelo menos arranjei seus parênteses de tal forma que, em minha opinião, eles desempenham um papel.
e mesmo que seu código tenha dado 24 erros no compilador!!! ainda obrigado até mesmo pela ajuda descuidada.... para a idéia... (funciona agora - embora eu tenha tentado fazer dessa forma em princípio, mas a pontuação foi um problema)