[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 193
Diubakin: Se você fizer isso, todas as adversidades devem desaparecer.
Para remover a condição "extra", você pode fazer isso:
int i, ot = OrdersTotal();
double min = 1000.0;
int min_ticket=0;
for (i=ot - 1; i>= 0; i--)
{
if (!OrderSelect (i, SELECT_BY_POS)) continue;
if (OrderType()!=OP_BUY) if (OrderType()!=OP_SELL) continue;
if (min <= OrderLots()) continue;
min = OrderLots();
min_ticket=OrderTicket();
}
Como assim... Baseado em Igor Kim fez algo... Apenas uma de suas características... o resto é o mesmo...
algo assim, acho eu:
E nós a chamamos assim:
para contar Comprar e contar Vender no símbolo atual, com Magic
Artyom, é claro que começo por Kim, removendo cheques desnecessários para mim e acrescentando tarefas necessárias para mim. Eu não quero reinventar a roda! Obrigado pela correção, serei mais corajoso para remover desnecessário! E não preciso verificar o mágico e o símbolo, porque às vezes intervenho "com minhas mãos" e não antes da multimoeda para mim ainda!
borilunad: Artyom, claro que venho de Kim, removendo verificações desnecessárias e acrescentando as tarefas de que preciso. Não para reinventar uma bicicleta! Obrigado pela correção, serei mais corajoso para remover desnecessário! E não preciso verificar o mágico e o símbolo, pois às vezes intervenho "manualmente" e não antes da multimoeda para mim ainda!
Você deve verificar se (OrderMagicNumber()==0) ... Este é um cheque para "manual".
Se quisermos interferir com outros EAs que trabalham com outro símbolo, podemos remover a verificação para OrderSymbol().
Deixei as verificações mínimas necessárias para trabalhar em um único personagem, com suas próprias posições/ordens. Se você também quiser tocar o que "pegas", então você precisa acrescentar um cheque para magic==0.
Então você deve fazer uma verificação se (OrderMagicNumber()==0) ... é um cheque para "manual".
Se quisermos interferir com outros EAs trabalhando com outro símbolo, podemos remover a verificação do OrderSymbol().
Deixei as verificações mínimas necessárias para trabalhar em um símbolo, com suas próprias posições/ordens. Se você também quiser tocar "à mão", então você precisa acrescentar um cheque para magik==0.
Estou autorizado a fazer isso como está! Mas vou tomar nota, especialmente com != e o contínuo não abranda em nada! Obrigado!
Muito obrigado por sua ajuda. Tudo está bem. Mas......
1. Em alguns dos cinco minutos, mais de 1 pedido é aberto.
2. Algumas ordens são fechadas por ordens de parada cujo preço é diferente daquele prescrito no código.
Bem, vamos lá, então tudo é simples - faça o mesmo cheque nas ordens fechadas) E sobre o preço de fechamento- desculpe, é definido corretamente, e então o servidor a que preço realmente fechá-lo.
int start()
{
double Price=iOpen (Symbol (),PERIOD_M5,0)+300*Point;
double SL=NormalizeDouble (Price-300*Point, Digits);
double TP=NormalizeDouble (Price+150*Point, Digits);
int last_order_bar = 0;
int ot = OrdersTotal();
if (ot>0) //если есть ордера в рынке
{
if (OrderSelect (ot-1,SELECT_BY_POS)) //выбрали последний ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний ордер (если он есть)
}
int last_hist_order_bar = 0;
int oht = OrdersHistoryTotal();
if (oht>0) //если есть ордера в рынке
{
if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY)) //выбрали последний закрытый ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний закрытый ордер (если он есть)
}
if (ot==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем бареif (oht==0 || last_hist_order_bar>0) //если закрытых ордеров нет либо последний из закрытых был открыт не на текущем бареif (Bid>=Price) //если текущая цена доползла до цены открытияint Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
}
alsu: Bem, é fácil fazer a mesma verificação nos pedidos fechados) E sobre o preço de fechamento - desculpe, ele é definido corretamente, e então depende do servidor a que preço ele pode ser fechado.
if (oht>0) //если есть ордера в рынке
{
if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY)) //выбрали последний закрытый ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний закрытый ордер (если он есть)
}
Se você fizer isso, todas as adversidades devem desaparecer.
Para remover a condição "extra", você pode fazer isso:
Como assim... Baseado em Igor Kim fez algo... Apenas uma de suas características... o resto é o mesmo...
algo assim, acho eu:
E nós a chamamos assim:
para contar Comprar e contar Vender no símbolo atual, com Magic
Para remover a condição "extra", você pode fazer o seguinte
Igor, você está certo. É mais legível dessa forma...
Artyom, claro que venho de Kim, removendo verificações desnecessárias e acrescentando as tarefas de que preciso. Não para reinventar uma bicicleta! Obrigado pela correção, serei mais corajoso para remover desnecessário! E não preciso verificar o mágico e o símbolo, pois às vezes intervenho "manualmente" e não antes da multimoeda para mim ainda!
Você deve verificar se (OrderMagicNumber()==0) ... Este é um cheque para "manual".
Se quisermos interferir com outros EAs que trabalham com outro símbolo, podemos remover a verificação para OrderSymbol().
Deixei as verificações mínimas necessárias para trabalhar em um único personagem, com suas próprias posições/ordens. Se você também quiser tocar o que "pegas", então você precisa acrescentar um cheque para magic==0.
Então você deve fazer uma verificação se (OrderMagicNumber()==0) ... é um cheque para "manual".
Se quisermos interferir com outros EAs trabalhando com outro símbolo, podemos remover a verificação do OrderSymbol().
Deixei as verificações mínimas necessárias para trabalhar em um símbolo, com suas próprias posições/ordens. Se você também quiser tocar "à mão", então você precisa acrescentar um cheque para magik==0.
Muito obrigado por sua ajuda. Tudo está bem. Mas......
1. Em alguns dos cinco minutos, mais de 1 pedido é aberto.
2. Algumas ordens são fechadas por ordens de parada cujo preço é diferente daquele prescrito no código.
Bem, é fácil fazer a mesma verificação nos pedidos fechados) E sobre o preço de fechamento - desculpe, ele é definido corretamente, e então depende do servidor a que preço ele pode ser fechado.
E quanto ao preço de fechamento - desculpe, ele é definido corretamente, e então depende do servidor a que preço ele realmente fechará.
Muito obrigado novamente por toda a sua ajuda. Mas.....
Eu abri apenas um pedido durante o período de um ano, ou seja, o primeiro pedido que encontrei.
E há muito mais castiçais com parâmetros para abrir uma ordem neste período.
Não poderei fechá-lo. Obrigado.
Muito obrigado novamente por toda a sua ajuda. Mas.....
Eu abri apenas um pedido durante o período de um ano, ou seja, o primeiro pedido que encontrei.
E há muito mais castiçais com parâmetros para abrir uma ordem neste período.
Obrigado.
Corrigir meu erro de digitação - a segunda vez
Eu preciso de
Corrigir meu erro de digitação - a segunda vez
É suposto ser.