Publi
|
Iniciado por
trader201
Estoy colocando en un EA, para forzar la entrada, que regrese a variabla justo antes de OrderSend en caso de no haberse producido este. Así:
Código:
int A=0;
if (OrderSend(NULL, OP_BUY, 0.01, Ask, 5, SL, TP, NULL, 0, 0, clrNONE)!=true);
return (A);
La intención es que siempre que no abra la operación, regrese a la variable "A" para repetir la
linea de OrderSend.
Pero me sale mensaje de
error al compilar diciendo:
empty controlled statement found (cuando doy doble click a este envía el cursor a linea de OrderSend)
'return' - 'void' function returns a value (cuando doy doble click a este, envía cursor a linea "return").
¿Alguien sabe de qué se trata esto?
Gracias de antemano.
hola
pues creo que estas planteando mal el asunto... ya que lo que quieres es un bucle tipo while:
en esencia se crea una variable booleana que controle si se abre o no la orden bool enviar_orden = true; y luego coloque el código como tal en el Ontick.... si haces un backtest veras que genera solo una orden.... supongo que tendrias que colocar otro tipo de variable o condición especificando cada cuanto crear ordenes...
tambien le quite las variables de takeprofit y stoplost pero supongo que vos sabes como ponerlas.. saludos
Código:
//+------------------------------------------------------------------+
//| test.mq4 |
//| Diego Quevedo |
//| www.doshape.com |
//+------------------------------------------------------------------+
#property copyright "Diego Quevedo"
#property link "www.doshape.com"
#property version "1.00"
#property strict
bool enviar_orden = true;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
while (enviar_orden == true)
{
bool orden= OrderSend(Symbol(), OP_BUY, 0.1, Ask, 5, 0, 0, NULL, 0, 0, clrNONE) ;
if (orden!=true)
{
enviar_orden = true;
Print("No se envio la orden");
Comment("No se envio la orden");
Alert("No se envio la orden");
}
else
{
enviar_orden = false;
Print("se envio la orden");
Comment("se envio la orden");
Alert("se envio la orden");
}
}
}
//+------------------------------------------------------------------+
pd... aproposito... el return NO nos devuelve a la linea de A.... sino que devuelve un valor.... en este caso devolveria 0.... pero ni siquiera lo ves porque no usas Print ni nada para verlo.... saludos
Foro de Forex Trading United