¡¡KARAUL!! AYUDA. ¡¡¡Faltaban 4 horas y 45 minutos!!!

 

¿Puede alguien ayudar, por favor? No sé dónde está el error.

código:

//+------------------------------------------------------------------+
//| Cempionat2012.mq5 ||
//| Victor Pavlyuk...
//| |
//+------------------------------------------------------------------+
#property copyright "Victor Pavljuk"
#versión de la propiedad "1.03"

input int TakeProfit=538;
input int StopLoss=1000;
input int Tiempo de comercio=13;
input int t1=7;
input int t2=1;
input int delta=70;
entrada doble lote=5;

bool cantrade=true;
Doble pregunta;
doble oferta;
int OpenLong(double volume=5,
int deslizamiento=10000,
string comment="",
int magic=888)
{
MqlTradeRequest mi_comercio;
MqlTradeResult mi_comercio_resultado;

mi_comercio.acción=TRADE_ACTION_DEAL;
mi_operación.símbolo=Símbolo();
mi_comercio.volumen=NormalizarDoble(volumen,1);
mi_comercio.precio=NormalizarDoble(Pregunta,_Dígitos);
mi_operación.sl=NormalizarDoble(Ask-StopLoss*_Punto,_Dígitos);
mi_comercio.tp=NormalizarDoble(Pregunta+TomaDeBeneficio*_Punto,_Dígitos);
mi_comercio.desviación=desviación;
mi_comercio.tipo=ORDEN_TIPO_BUY;
mi_comercio.tipo_de_relleno=ORDEN_DE_relleno_de_relleno;
mi_comercio.comentario=comentario;
mi_comercio.magia=magia;

ResetLastError();

if(OrderSend(my_trade,my_trade_result))
{
Print("código de resultado de la transacción - ",mi_resultado_comercial.retcode)
}
si no
{
Print("Código de resultado de la operación - ",mi_resultado_comercial.retcode);
Print("Error de apertura de pedido = ",GetLastError());
}
return(0);
}
int OpenShort(double volume=5,
int deslizamiento=10000,
string comment="",
int magic=888)
{
MqlTradeRequest mi_comercio;
MqlTradeResult mi_comercio_resultado;

mi_comercio.acción=TRADE_ACTION_DEAL;
mi_operación.símbolo=Símbolo();
mi_comercio.volumen=NormalizarDoble(volumen,1);
mi_comercio.precio=NormalizarDoble(Pregunta,_Dígitos);
mi_operación.sl=NormalizarDoble(Ask-StopLoss*_Punto,_Dígitos);
mi_comercio.tp=NormalizarDoble(Pregunta+TomaDeBeneficio*_Punto,_Dígitos);
mi_comercio.desviación=desviación;
mi_comercio.tipo=ORDEN_TIPO_VENTA;
mi_comercio.tipo_de_relleno=ORDEN_DE_relleno_de_relleno;
mi_comercio.comentario=comentario;
mi_comercio.magia=magia;

ResetLastError();

if(OrderSend(my_trade,my_trade_result))
{
Print("código de resultado de la transacción - ",mi_resultado_comercial.retcode)
}
si no
{
Print("Código de resultado de la operación - ",mi_resultado_comercial.retcode);
Print("Error de apertura de pedido = ",GetLastError());
}
return(0);
}
int OnInit()
{
return(0);
}
void OnDeinit(const int reason){}
void OnTick()
{
doble Open[];
MqlDateTime mqldt;
TimeCurrent(mqldt);
int len;
MqlTick last_tick;
SymbolInfoTick(_Símbolo,last_tick);
Ask=último_tick.ask;
Bid=último_tick.bid;

ArraySetAsSeries(Open,true);

si(t1>=t2)len=t1+1;
Si no, len=t2+1;

CopyOpen(_Símbolo,PERIOD_M30,0,len,Open);

if(((mqldt.hour)>TradeTime))

if(!PositionSelect(_Symbol))// si no hay ninguna posición abierta todavía
{
if((mqldt.hour==TradeTime) && (cantrade))
{
if(Open[t1]>(Open[t2]+delta*_Point))
{
OpenShort(lote,10,",888);
cantrade=false;
volver;

}

if((Open[t1]+delta*_Point)<Open[t2])
{
OpenLong(lot,10,"",888);
{ return; }((Open[t1]+delta*_Point)=false;
volver;
}

}
}
volver;
}
//+------------------------------------------------------------------+

Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
Archivos adjuntos:
 

La estructura MqlTradeRequest debe borrarse antes de utilizar

Leer más

 
GGG, me pregunto cuántas personas tienen una frase en su cabeza que resuena con el tema de este hilo. :)
 
//+------------------------------------------------------------------+
//| Cempionat2012.mq5 |
//| Victor Pavlyuk |
//| |
//+------------------------------------------------------------------+
#property copyright "Victor Pavljuk"
#property version "1.03"

input int TakeProfit=538;
input int StopLoss=1000;
input int TradeTime=13;
input int t1=7;
input int t2=1;
input int delta=70;
input double lot=5;

bool cantrade=true; 
double Ask; 
double Bid; 
int OpenLong(double volume=5,
int slippage=10000,
string comment="",
int magic=888)
{
MqlTradeRequest my_trade;
MqlTradeResult my_trade_result;

my_trade.action=TRADE_ACTION_DEAL;
my_trade.symbol=Symbol();
my_trade.volume=NormalizeDouble(volume,1);
my_trade.price=NormalizeDouble(Ask,_Digits);
my_trade.sl=NormalizeDouble(Ask-StopLoss*_Point,_Digits);
my_trade.tp=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
my_trade.deviation=slippage;
my_trade.type=ORDER_TYPE_BUY;
my_trade.type_filling=ORDER_FILLING_RETURN;
my_trade.comment=comment;
my_trade.magic=magic;

ResetLastError();

if(OrderSend(my_trade,my_trade_result))
{
Print("Код результата операции - ",my_trade_result.retcode);
}
else
{
Print("Код результата операции - ",my_trade_result.retcode);
Print("Ошибка открытия ордера = ",GetLastError());
}
return(0);
}
int OpenShort(double volume=5,
int slippage=10000,
string comment="",
int magic=888)
{
MqlTradeRequest my_trade;
MqlTradeResult my_trade_result;

my_trade.action=TRADE_ACTION_DEAL;
my_trade.symbol=Symbol();
my_trade.volume=NormalizeDouble(volume,1);
my_trade.price=NormalizeDouble(Ask,_Digits);
my_trade.sl=NormalizeDouble(Ask-StopLoss*_Point,_Digits);
my_trade.tp=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
my_trade.deviation=slippage;
my_trade.type=ORDER_TYPE_SELL;
my_trade.type_filling=ORDER_FILLING_RETURN;
my_trade.comment=comment;
my_trade.magic=magic;

ResetLastError();

if(OrderSend(my_trade,my_trade_result))
{
Print("Код результата операции - ",my_trade_result.retcode);
}
else
{
Print("Код результата операции - ",my_trade_result.retcode);
Print("Ошибка открытия ордера = ",GetLastError());
}
return(0);
}
int OnInit()
{
return(0);
}
void OnDeinit(const int reason){}
void OnTick()
{
double Open[];
MqlDateTime mqldt;
TimeCurrent(mqldt);
int len;
MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
Ask=last_tick.ask;
Bid=last_tick.bid;

ArraySetAsSeries(Open,true);

if(t1>=t2)len=t1+1;
else len=t2+1;

CopyOpen(_Symbol,PERIOD_M30,0,len,Open);

if(((mqldt.hour)>TradeTime)) cantrade=true;

if(!PositionSelect(_Symbol))// Если еще нет открытой позиции
{
if((mqldt.hour==TradeTime) && (cantrade))
{
if(Open[t1]>(Open[t2]+delta*_Point))
{
OpenShort(lot,10,"",888);
cantrade=false;
return;

}

if((Open[t1]+delta*_Point)<Open[t2])
{
OpenLong(lot,10,"",888);
cantrade=false;
return;
}

}
}
return;
}
//+------------------------------------------------------------------+
Para empezar, sólo para ser claros
 

Creo que esto es un código para preguntar por qué TP y SL es igual a Asku

Sólo que hay un autor diferente.

EN MI OPINIÓN.

 

puede sacar la estructura de la función:

o el deslizamiento es demasiado grande, ¿por qué ponerlo así?

¿y por qué hay un par de soportes extra?

if(((mqldt.hour)>TradeTime))

 

Es posible reescribir la función de apertura por tipo:

void PosOpen(int trade, string symbol)
  {if (trade==0)
   return;
   
   double Price;
   ENUM_ORDER_TYPE Type;
   
   if (trade==1)
    {Type= ORDER_TYPE_BUY;
     Price=SymbolInfoDouble(symbol,SYMBOL_ASK);}
   else 
    {Type = ORDER_TYPE_SELL;
     Price=SymbolInfoDouble(symbol,SYMBOL_BID);}
     
   mytrade.PositionOpen(symbol,Type,Lot,Price,0,0,"Open");    
 return;
 }    
 
Heroix:

Es posible reescribir la función de apertura por tipo:

entonces al menos especifique de qué bibliotecas se toman las funciones.

 

Durante la prueba, veo mensajes en el registro.

2012.09.21 20:07:11 Core 1 2012.09.18 13:00:00 falló la venta instantánea de 5,00 EURUSD a 1,30657 sl: 1,29657 tp: 1,31195 [Solicitud no válida].

 
pavivas:

Durante la prueba, veo mensajes en el registro.

2012.09.21 20:07:11 Core 1 2012.09.18 13:00:00 falló la venta instantánea de 5,00 EURUSD a 1,30657 sl: 1,29657 tp: 1,31195 [Solicitud no válida].

aquí es donde deberías haber empezado.
 
Vladon:

entonces al menos especifique de qué bibliotecas se toman las funciones.

#include <Trade\Trade.mqh>

Por cierto, está en la carpeta del terminal por defecto, ¿no? ¿No debería estar unido al EA en el chump?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5