[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 420

 

declarar uma variável

bool ret;

antes do loop

 

boneco de neve647, huh?)

não há nada de errado com a compilação, algo está errado com o algoritmo.

 
Summer писал(а) >>

boneco de neve647, huh?)

Não há nada de errado com a compilação, algo está errado com o algoritmo.

Provavelmente, é preciso observar como são abertas novas posições.

 
Gente, que pode me dar uma dica. Ontem eu estava fazendo um EA em níveis de Murray. A idéia é vender/comprar a partir dos níveis 8/0 e 0/8 e TP para pivotar. Usei ObjectGet() para obter as linhas, pois não consegui encontrar outra maneira. O problema é que se a volatilidade diminui, os níveis são redesenhados e o mais importante é que a TP muda automaticamente. Mas, segundo a TS, isso não deve mudar. Mas como devemos manter a TP inalterada? Agradeço antecipadamente a ajuda.
 
Vinin >>:

Наверно надо смотреть как открываются новые позиции

abre, mas não quer fechar)

Deve haver algo errado com o algoritmo de fechamento.

O código é o mais simples, nenhum dos programadores experientes pode entender o que está errado?)

 
Bom dia a todos! Estou testando uma EA em tempo real em uma conta demo (o terminal está funcionando 24 horas por dia). Eu tenho uma pergunta! Metatrader é capaz de emitir estatísticas sobre EA realmente trabalhando com base nessas operações, o que ele fez (claro, não me refiro aqui ao teste posterior)? OBRIGADO A TODOS!
 
Summer писал(а) >>

abre, mas não quer fechar)

Deve haver algo errado com o algoritmo de fechamento.

O código é o mais simples, nenhum dos programadores experientes pode entender o que está errado?)

Se a abertura não utiliza Magik, então como você pode fechar pela Magik. É por isso que a questão se coloca.

 

Vinin, meu bom homem) o mágico vale a pena)))

extern double Lots=0.1;

int start()
{

bool ret;

double Ind11=iMA(NULL,0,12,0,0,0,0);
double Ind12=iMA(NULL,0,12,0,0,0,1);

if(Ind11>Ind12)
{

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",16384,0,Green);

}

if(Ind11<Ind12)
{



for(ic=OrdersTotal()-1;ic>=0;ic--)
{
if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()==Symbol() && OrderMagicNumber()==16384)
{
if (OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),Bid,5,CLR_NONE);

if (OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,5,CLR_NONE);
}}



}

return(0);

}

 
Necron >>:
Народ, кто может подсказать. Вчера делал советника по уровням Мюррея. Там смысл такой, что от уровней 8/0 и 0/8 надо продавать/покупать, а TP на пивот. Я использовал ObjectGet() чтобы получить линии, т.к. другого способа не нашел. Проблема в том, что если снижается волатильность, то уровни перерисовываются, и что самое главное автоматически меняется и TP. А менятся по ТС не должен. А вот как сделать чтоб TP не менялся? Заранее благодарен за помощь.

fixar o algoritmo de cálculo de linhas e pivô

 
Summer >>:

Vinin, уважаемый) магик то стоит))

extern double Lots=0.1;

int start()
{

bool ret;

double Ind11=iMA(NULL,0,12,0,0,0,0);
double Ind12=iMA(NULL,0,12,0,0,0,1);

if(Ind11>Ind12)
{

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",16384,0,Green);

}

if(Ind11<Ind12)
{



for(ic=OrdersTotal()-1;ic>=0;ic--)
{
if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()==Symbol() && OrderMagicNumber()==16384)
{
if (OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),Bid,5,CLR_NONE);

if (OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,5,CLR_NONE);
}}



}

return(0);

}

Dar NormalizeDouble(Ask, Digits) em vez de Ask, NormalizeDouble(Bid, Digits) em vez de Bid, e funcionará