Este es mi código tal y como está ahora, puede abrir operaciones en cualquier par que lo ponga, pero aleatoriamente tiene ciertas con operaciones abiertas. He estado tratando de conseguir el código para ejecutar esencialmente de forma independiente en cualquier par que lo puse en, pero por desgracia el código no se abrirá ningún comercio hasta que todos los otros oficios se cierran, y luego no se abren las operaciones en todos los pares que se establece en. ¿Hay alguna manera de tener el programa de hacer que, lo hace comprar y vender la forma que quiero.
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(fastma < slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing order ", GetLastError());
}
}
if(OrderType()==OP_SELL)
{
if(fastma > slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing Order : ", GetLastError());
}
}
}
Sleep(300000);
return(0);
}
Sí, hay que hacer una cuenta atrás cuando se cierran las órdenes:
Sí, hay que hacer una cuenta atrás al cerrar las órdenes:
¿Por qué continuar?
¿Por qué continuar?
//|System start |
//+---------------------------------------------+
int start()
{
double fastma, slowma;
int ticket, total;
//---define Ma's
fastma = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);
slowma = iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,0);
total = OrdersTotal();
//---Start operations
if(total < 1)
{
if(fastma > slowma)
{
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Buy order opened : ", OrderOpenPrice());
}
else
Print("Error opening order : ", GetLastError());
return(0);
}
if(fastma < slowma)
{
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",0,0,Red);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Sell order opened : ", OrderOpenPrice());
}
else
Print("Error opening order : ", GetLastError());
return(0);
}
return(0);
}
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(fastma < slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing order ", GetLastError());
}
}
if(OrderType()==OP_SELL)
{
if(fastma > slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing Order : ", GetLastError());
}
}
}
Sleep(300000);
return(0);
}
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
OrderSelect(i,SELECT_BY_POS)
&& OrderMagicNumber() == MagicNumber
&& OrderSymbol() == Symbol()
){
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
OrderSelect(i,SELECT_BY_POS)
&& OrderMagicNumber() == MagicNumber
&& OrderSymbol() == Symbol()
){
//---Check Order Type
if(OrderType()==OP_BUY)
Cada gráfico sigue sin funcionar de forma independiente, ¿hay algo más que pueda hacer?
Y tal y como está codificado, ya no cierra las operaciones.
total = OrdersTotal();
//---Start operations
if(total <= 1)