[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 420

 

declarar una variable

bool ret;

antes del bucle

 

snowman647, ¿eh?)

no hay nada malo en la compilación, algo está mal en el algoritmo.

 
Summer писал(а) >>

snowman647, ¿eh?)

No hay nada malo en la compilación, algo está mal en el algoritmo.

Probablemente haya que observar cómo se abren las nuevas posiciones.

 
Amigos, que pueden darme una pista. Ayer estuve haciendo un EA sobre los niveles de Murray. La idea es vender/comprar desde los niveles 8/0 y 0/8 y el TP al pivote. Usé ObjectGet() para obtener las líneas ya que no encontré otra forma. El problema es que si la volatilidad disminuye, los niveles se vuelven a dibujar y lo más importante es que el TP cambia automáticamente. Pero según el TS no debería cambiar. Pero, ¿cómo debemos mantener el TP sin cambios? Agradezco la ayuda de antemano.
 
Vinin >>:

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

se abre, pero no quiere cerrarse)

Debe haber algo mal en el algoritmo de cierre.

El código es de lo más sencillo, ¿alguno de los programadores experimentados no puede entender qué es lo que falla?)

 
¡Buenos días a todos! Estoy probando un EA en tiempo real en una cuenta demo (el terminal está funcionando las 24 horas del día). Tengo una pregunta! ¿Metatrader es capaz de emitir estadísticas sobre el EA que realmente funciona sobre la base de esas operaciones, que hizo (por supuesto, no me refiero a la prueba de espalda aquí)? ¡GRACIAS A TODOS!
 
Summer писал(а) >>

se abre, pero no quiere cerrarse)

Debe haber algo mal en el algoritmo de cierre.

El código es de lo más sencillo, ¿alguno de los programadores experimentados no puede entender qué es lo que falla?)

Si la apertura no utiliza Magik, entonces cómo puede cerrar por Magik. Por eso surge la pregunta.

 

Vinin, mi buen hombre) el mago vale la 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 не менялся? Заранее благодарен за помощь.

arreglar el algoritmo de cálculo de las líneas y del pivote

 
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);

}

Dé NormalizeDouble(Ask, Digits) en lugar de Ask, NormalizeDouble(Bid, Digits) en lugar de Bid, y funcionará