Errores, fallos, preguntas - página 809

 

Volviendo al tema de la determinación de stoplosses y takeprofits en el evento OnTradeTransaction. Tengo el siguiente registro de salida de todos los campos de las estructuras (tomado del ejemplo de MetaQuotes), y esto ya no es un probador sino un concurso en línea. Aquí tenemos una compra:

ON 0 transacciones (EURUSD,H1) 11:14:23 OrderSendWrapper:0.10 EURUSD BUY JK 0 transacciones (EURUSD,H1) 11:14:23 _OrderSend price=1.23575 vol=0.10 GM 0 transacciones (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_REQUEST OH 0 transacciones (EURUSD,H1) 11:14:24 ------------RequestDescription PK 0 transacciones (EURUSD,H1) 11:14:24 TRADE_ACTION_DEAL DJ 0 transacciones (EURUSD,H1) 11:14:24 Symbol: EURUSD FN 0 transacciones (EURUSD,H1) 11:14:24 Magic Number: 0 PD 0 transacciones (EURUSD,H1) 11:14:24 Ticket de orden: 11670896 PL 0 transacciones (EURUSD,H1) 11:14:24 Tipo de orden: ORDER_TYPE_BUY JF 0 transacciones (EURUSD,H1) 11:14:24 Llenado de orden: ORDER_FILLING_FOK FM 0 transacciones (EURUSD,H1) 11:14:24 Tipo de hora de orden: ORDER_TIME_GTC NG 0 transacciones (EURUSD,H1) 11:14:24 Vencimiento de orden: 1970.01.01 00:00:00 HI 0 transacciones (EURUSD,H1) 11:14:24 Precio: 1,23579 EG 0 transacciones (EURUSD,H1) 11:14:24 Puntos de desviación: 10 DR 0 transacciones (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 PJ 0 transacciones (EURUSD,H1) 11:14:24 Toma de ganancias: 1.2361 ON 0 transacciones (EURUSD,H1) 11:14:24 Tope de ganancias: 0 MK 0 transacciones (EURUSD,H1) 11:14:24 Volumen: 0.1 IQ 0 transacciones (EURUSD,H1) 11:14:24 Comentario: FG 0 transacciones (EURUSD,H1) 11:14:24 MF 0 transacciones (EURUSD,H1) 11:14:24 ------------ResultDescription JL 0 transacciones (EURUSD,H1) 11:14:24 Retcode 10009 ME 0 transacciones (EURUSD,H1) 11:14:24 Request ID: 1 RL 0 transacciones (EURUSD,H1) 11:14:24 Order ticket: 11670896 NK 0 transacciones (EURUSD,H1) 11:14:24 Deal ticket: 10809619 QS 0 transacciones (EURUSD,H1) 11:14:24 Volume: 0.1 LJ 0 transacciones (EURUSD,H1) 11:14:24 Precio: 1,23579 RR 0 transacciones (EURUSD,H1) 11:14:24 Pregunta: 1,23579 PI 0 transacciones (EURUSD,H1) 11:14:24 Oferta: 1.23566 GE 0 transacciones (EURUSD,H1) 11:14:24 Comentario: DS 0 transacciones (EURUSD,H1) 11:14:24 GE 0 transacciones (EURUSD,H1) 11:14:24 Ticket de orden pendiente 11670896 LR 0 transacciones (EURUSD,H1) 1114:24 LG 0 transacciones (EURUSD,H1) 11:14:24 ------------TransactionDescription FQ 0 transacciones (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_ORDER_ADD HF 0 transacciones (EURUSD,H1) 11:14:24 Symbol: EURUSD HM 0 transacciones (EURUSD,H1) 11:14:24 Ticket de transacción: 0 DK 0 transacciones (EURUSD,H1) 11:14:24 Tipo de transacción: DEAL_TYPE_BUY DQ 0 transacciones (EURUSD,H1) 11:14:24 Ticket de orden: 11670896 DI 0 transacciones (EURUSD,H1) 11:14:2424 Tipo de orden: ORDER_TYPE_BUY CR 0 transacciones (EURUSD,H1) 11:14:24 Estado de la orden: ORDER_STATE_STARTED RI 0 transacciones (EURUSD,H1) 11:14:24 Tipo de hora de la orden: ORDER_TIME_GTC JS 0 transacciones (EURUSD,H1) 11:14:24 Vencimiento de la orden: 1970.01.01 00:00 DE 0 transacciones (EURUSD,H1) 11:14:24 Precio: 1,23579 QN 0 transacciones (EURUSD,H1) 11:14:24 Activación del precio: 0 PG 0 transacciones (EURUSD,H1) 11:14:24 Stop Loss: 1,2354 LM 0 transacciones (EURUSD,H1) 11:14:24 Toma de beneficios: 1,2361 EF 0 transacciones (EURUSD,H1) 11:14:24 Volumen: 0.1 JI 0 transacciones (EURUSD,H1) 11:14:24 NS 0 transacciones (EURUSD,H1) 11:14:24 ------------TransactionDescription HH 0 transacciones (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_ORDER_DELETE DR 0 transacciones (EURUSD,H1) 11:14:24 Symbol: EURUSD LJ 0 transacciones (EURUSD,H1) 11:14:24 Deal ticket: 0 PN 0 transacciones (EURUSD,H1) 11:14:24 Deal type: DEAL_TYPE_BUY PD 0 transacciones (EURUSD,H1) 11:14:24 Orden: 11670896 PL 0 transacciones (EURUSD,H1) 11:14:24 Orden: ORDER_TYPE_BUY NJ 0 transacciones (EURUSD,H1) 11:11:14:24 Estado de la orden: ORDER_STATE_FILLED PM 0 transacciones (EURUSD,H1) 11:14:24 Tipo de hora de la orden: ORDER_TIME_GTC HG 0 transacciones (EURUSD,H1) 11:14:24 Vencimiento de la orden: 1970.01.01 00:00 JI 0 transacciones (EURUSD,H1) 11:14:24 Precio: 1,23579 OJ 0 transacciones (EURUSD,H1) 11:14:24 Activación del precio: 0 NS 0 transacciones (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 JJ 0 transacciones (EURUSD,H1) 11:14:24 Toma de ganancias: 1.2361 FS 0 transacciones (EURUSD,H1) 11:14:24 Volumen: 0 HE 0 transacciones (EURUSD,H1) 11:14:24 HN 0 transacciones (EURUSD,H1) 11:14:24 ------------TransactionDescription FI 0 transacciones (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_HISTORY_ADD HN 0 transacciones (EURUSD,H1) 11:14:24 Símbolo: EURUSD HE 0 transacciones (EURUSD,H1) 11:14:24 Ticket de transacción: 0 DS 0 transacciones (EURUSD,H1) 11:11:14:24 Tipo de operación: DEAL_TYPE_BUY DI 0 transacciones (EURUSD,H1) 11:14:24 Ticket de orden: 11670896 DQ 0 transacciones (EURUSD,H1) 11:14:24 Tipo de orden: ORDER_TYPE_BUY RF 0 transacciones (EURUSD,H1) 1114:24 Estado de la orden: ORDER_STATE_FILLED LQ 0 transacciones (EURUSD,H1) 11:14:24 Tipo de hora de la orden: ORDER_TIME_GTC DK 0 transacciones (EURUSD,H1) 11:14:24 Vencimiento de la orden: 1970.01.01 00:00 FM 0 transacciones (EURUSD,H1) 11:14:24 Precio: 1,23579 CF 0 transacciones (EURUSD,H1) 11:14:24 Precio de activación: 0 RO 0 transacciones (EURUSD,H1) 11:14:24 Stop Loss: 1,2354 NE 0 transacciones (EURUSD,H1) 11:14:24 Take Profit: 1.2361 RO 0 transacciones (EURUSD,H1) 11:14:24 Volumen: 0 DQ 0 transacciones (EURUSD,H1) 11:14:24 DJ 0 transacciones (EURUSD,H1) 11:14:24 ------------TransactionDescription LQ 0 transacciones (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_DEAL_ADD FK 0 transacciones (EURUSD,H1) 11:14:24 Símbolo: EURUSD DR 0 transacciones (EURUSD,H1) 11:14:24 Ticket de transacción: 10809619 PF 0 transacciones (EURUSD,H1) 11:14:24 Tipo de operación: DEAL_TYPE_BUY PL 0 transacciones (EURUSD,H1) 11:14:24 Ticket de orden: 11670896 PD 0 transacciones (EURUSD,H1) 11:14:24 Tipo de orden: ORDER_TYPE_BUY GN 0 transacciones (EURUSD,H1) 11:11:14:24 Estado de la orden: ORDER_STATE_STARTED FE 0 transacciones (EURUSD,H1) 11:14:24 Tipo de hora de la orden: ORDER_TIME_GTC NO 0 transacciones (EURUSD,H1) 11:14:24 Vencimiento de la orden: 1970.01.01 00:00:00 HQ 0 transacciones (EURUSD,H1) 11:14:24 Precio: 1.23579 MR 0 transacciones (EURUSD,H1) 11:14:24 Disparo de precio: 0 LK 0 transacciones (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 HR 0 transacciones (EURUSD,H1) 11:14:24 Toma de ganancias: 1.2361 QJ 0 transacciones (EURUSD,H1) 11:14:24 Volumen: 0.1 NR 0 transacciones (EURUSD,H1) 11:14:24

Y aquí se cierra en Take Profit:

DJ 0 transacciones (EURUSD,H1) 11:20:38 ------------TransactionDescription JN 0 transacciones (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_ORDER_ADD DH 0 transacciones (EURUSD,H1) 11:20:38 Symbol: EURUSD PP 0 transacciones (EURUSD,H1) 11:20:38 Deal ticket: 0 PH 0 transacciones (EURUSD,H1) 11:20:38 Deal type: DEAL_TYPE_BUY LR 0 transacciones (EURUSD,H1)20:38 Orden de entrada: 11670968 HG 0 transacciones (EURUSD,H1) 11:20:38 Orden de tipo: ORDER_TYPE_SELL MO 0 transacciones (EURUSD,H1) 11:20:38 Orden de estado: ORDER_STATE_STARTED HF 0 transacciones (EURUSD,H1) 11:20:38 Orden de tipo de tiempo: ORDER_TIME_GTC PN 0 transacciones (EURUSD,H1) 11:20:38 Orden de vencimiento: 1970.01.01 00:00:00 JE 0 transacciones (EURUSD,H1) 11:20:38 Precio: 1.2361 MS 0 transacciones (EURUSD,H1) 11:20:38 Activación del precio: 0 MJ 0 transacciones (EURUSD,H1) 11:20:38 Stop Loss: 0 IR 0 transacciones (EURUSD,H1) 11:20:38 Take Profit: 0 QD 0 transacciones (EURUSD,H1) 11:20:38 Volumen: 0.1 NO 0 transacciones (EURUSD,H1) 11:20:38 NP 0 transacciones (EURUSD,H1) 11:20:38 ------------TransactionDescription LN 0 transacciones (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_ORDER_DELETE DE 0 transacciones (EURUSD,H1) 11:20:38 Symbol: EURUSD PK 0 transacciones (EURUSD,H1) 11:20:38 Deal ticket: 0 PM 0 transacciones (EURUSD,H1) 11:20:38 Deal type: DEAL_TYPE_BUY LG 0 transacciones (EURUSD,H1) 11:20:38 Orden: 11670968 HR 0 transacciones (EURUSD,H1) 11:20:38 Orden: ORDER_TYPE_SELL HH 0 transacciones (EURUSD,H1) 11:20:38 Estado de la orden: ORDER_STATE_FILLED FK 0 transacciones (EURUSD,H1) 11:20:38 Tipo de hora de la orden: ORDER_TIME_GTC NQ 0 transacciones (EURUSD,H1) 11:20:38 Vencimiento de la orden: 1970.01.01 00:00:00 HH 0 transacciones (EURUSD,H1) 11:20:38 Precio: 1.2361 KL 0 transacciones (EURUSD,H1) 11:20:38 Activación del precio: 0 GG 0 transacciones (EURUSD,H1) 11:20:38 Stop Loss: 0 GG 0 transacciones (EURUSD,H1) 11:20:38 Take Profit: 0 RS 0 transacciones (EURUSD,H1) 11:20:38 Volumen: 0 DJ 0 transacciones (EURUSD,H1) 11:20:38 HO 0 transacciones (EURUSD,H1) 11:20:38 ------------TransactionDescription JI 0 transacciones (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_HISTORY_ADD LN 0 transacciones (EURUSD,H1) 11:20:38 Symbol: EURUSD HF 0 transacciones (EURUSD,H1) 11:20:38 Ticket de transacción: 0 HR 0 transacciones (EURUSD,H1) 11:20:38 Tipo de transacción: DEAL_TYPE_BUY DH 0 transacciones (EURUSD,H1) 11:20:38 Ticket de orden: 11670968 PM 0 transacciones (EURUSD,H1) 11:20:3838 Tipo de orden: ORDER_TYPE_SELL PF 0 transacciones (EURUSD,H1) 11:20:38 Estado de la orden: ORDER_STATE_FILLED NQ 0 transacciones (EURUSD,H1) 11:20:38 Tipo de hora de la orden: ORDER_TIME_GTC FK 0 transacciones (EURUSD,H1) 11:20:38 Vencimiento de la orden: 1970.01.01 00:00 PO 0 transacciones (EURUSD,H1) 11:20:38 Precio: 1.2361 CF 0 transacciones (EURUSD,H1) 11:20:38 Activación del precio: 0 OM 0 transacciones (EURUSD,H1) 11:20:38 Stop Loss: 0 OG 0 transacciones (EURUSD,H1) 11:20:38 Take Profit: 0 JN 0 transacciones (EURUSD,H1) 11:20:38 Volumen: 0 LP 0 transacciones (EURUSD,H1) 11:20:38 PE 0 transacciones (EURUSD,H1) 11:20:38 ------------TransactionDescription MR 0 transacciones (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_POSITION JH 0 transacciones (EURUSD,H1) 11:20:38 Symbol: EURUSD JP 0 transacciones (EURUSD,H1) 11:20:38 Ticket de transacción: 0 FH 0 transacciones (EURUSD,H1) 11:20:38 Tipo de transacción: DEAL_TYPE_BUY HQ 0 transacciones (EURUSD,H1) 11:20:38 Ticket de orden: 0 DK 0 transacciones (EURUSD,H1) 11:20:38 Tipo de orden: ORDER_TYPE_BUY GQ 0 transacciones (EURUSD,H1) 11:20:38 Estado de la orden: ORDER_STATE_STARTED RH 0 transacciones (EURUSD,H1) 11:20:38 Tipo de hora de la orden: ORDER_TIME_GTC JL 0 transacciones (EURUSD,H1) 11:20:38 Vencimiento de la orden: 1970.01.01 00:00:00 HG 0 transacciones (EURUSD,H1) 11:20:38 Precio: 1,23579 QP 0 transacciones (EURUSD,H1) 11:20:38 Activación del precio: 0 LI 0 transacciones (EURUSD,H1) 11:20:38 Stop Loss: 1.2354 HO 0 transacciones (EURUSD,H1) 11:20:38 Toma de ganancias: 1.2361 QD 0 transacciones (EURUSD,H1) 11:20:38 Volumen: 0.1 NO 0 transacciones (EURUSD,H1) 11:20:38 NP 0 transacciones (EURUSD,H1) 11:20:38 ------------TransactionDescription FO 0 transacciones (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_DEAL_ADD LE 0 transacciones (EURUSD,H1) 11:20:38 Symbol: EURUSD EH 0 transacciones (EURUSD,H1) 11:20:38 Deal ticket: 10809689 RQ 0 transacciones (EURUSD,H1) 11:20:38 Deal type: DEAL_TYPE_SELL DF 0 transacciones (EURUSD,H1) 11:20:38 Orden: 11670968 HN 0 transacciones (EURUSD,H1) 11:20:38 Orden: ORDER_TYPE_BUY CD 0 transacciones (EURUSD,H1) 11:20:38 Estado de la orden: ORDER_STATE_STARTED NK 0 transacciones (EURUSD,H1) 11:20:38 Tipo de hora de la orden: ORDER_TIME_GTC FQ 0 transacciones (EURUSD,H1) 11:20:38 Vencimiento de la orden: 1970.01.01 00:00:00 PI 0 transacciones (EURUSD,H1) 11:20:38 Precio: 1.2361 CL 0 transacciones (EURUSD,H1) 11:20:38 Activación del precio: 0 OG 0 transacciones (EURUSD,H1) 11:20:38 Stop Loss: 0 OI 0 transacciones (EURUSD,H1) 11:20:38 Toma de beneficios: 0 KQ 0 transacciones (EURUSD,H1) 11:20:38 Volumen: 0.1

Lo único que une a estas transacciones es el precio(el precio de cierre es igual al precio TP). Pregunta: ¿es esa la forma de determinar el hecho de la TP? Imho, inconveniente y ambigua (si no recuerdo mal, el precio exacto de TP puede no suceder y TP se cerrará en el otro precio más cercano).

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

¡Buenas tardes! Me disculpo de antemano, tal vez estoy siendo obtuso, o no entiendo algunas cosas obvias. Estoy tratando de utilizar el indicador iMA, tratando de escribir de acuerdo a los ejemplos que he leído.

En general, intento hacerlo así. Declaro en la parte superior, por encima de todas las funciones de EA.

double      MA[];                // массив для индикатора iMA
//---- handles for indicators
int         MA_handle;           // указатель на индикатор iMA

Entonces uso una función que funcione en la función OnTick(). En la muestra, la propia función se encuentra en la parte inferior. De hecho, por ahora, sólo utilizaré el último valor cero de la matriz.

 if (EURNZD_d1 != 0.0) countq++;
      EURUSD_d1 = CalculateStrengthPairsTF("EURUSD"+dop_symb, PERIOD_D1);
      if (EURUSD_d1 != 0.0) countq++;
      EURCAD_d1 = CalculateStrengthPairsTF("EURCAD"+dop_symb, PERIOD_D1);
      if (EURCAD_d1 != 0.0) countq++;
      EURGBP_d1 = CalculateStrengthPairsTF("EURGBP"+dop_symb, PERIOD_D1);
      if (EURGBP_d1 != 0.0) countq++;
      EURAUD_d1 = CalculateStrengthPairsTF("EURAUD"+dop_symb, PERIOD_D1);
      if (EURAUD_d1 != 0.0) countq++;
      EURCHF_d1 = CalculateStrengthPairsTF("EURCHF"+dop_symb, PERIOD_D1);
      if (EURCHF_d1 != 0.0) countq++;
      if (countq != 0) D1_eur = NormalizeDouble((EURJPY_d1 + EURNZD_d1 + EURUSD_d1 + EURCAD_d1 + EURGBP_d1 + EURAUD_d1 + EURCHF_d1) / countq, 0);
   }
   int l_count_4 = 0;
   AVG_eur = 0;
   if (M1_eur != 0.0) l_count_4++;
   if (M5_eur != 0.0) l_count_4++;
   if (M15_eur != 0.0) l_count_4++;
   if (M30_eur != 0.0) l_count_4++;
   if (H1_eur != 0.0) l_count_4++;
   if (H4_eur != 0.0) l_count_4++;
   if (D1_eur != 0.0) l_count_4++;
   if (l_count_4 != 0) AVG_eur = (M1_eur + M5_eur + M15_eur + M30_eur + H1_eur + H4_eur + D1_eur) / l_count_4;
}

double CalculateStrengthPairsTF(string a_symbol, int a_timeframe) {
    int DIGITS_ = SymbolInfoInteger(a_symbol,SYMBOL_DIGITS);
   //---
    MqlTick last_tick;
   if(SymbolInfoTick(a_symbol,last_tick));
   double BID_ = last_tick.bid;
   BID_ = NormalizeDouble( BID_, DIGITS_);
    MA_handle=iMA(a_symbol,a_timeframe,Period_,0,method_ma,price_applied);
    //--- заполнение массива MA[] текущими значениями индикатора iMA
   //--- в массив будет записано 100 элементов
   CopyBuffer(MA_handle,0,0,100,MA);
   //--- задаём порядок индексации массива MA[] как в MQL4
   ArraySetAsSeries(MA,true);  
   double iMA_ = NormalizeDouble(MA[0], DIGITS_);

Sólo utilizaré el último valor cero.

Error 'a_timeframe' - no se puede convertir el enum Owl.mq5 2009 28

Con respecto a esta variable imino, está en la instrucción de tipo cadena, ves que está brillando en azul por sí misma...

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
Dimka-novitsek:

Escribe error 'a_timeframe' - no se puede convertir el enum Owl.mq5 2009 28

Oblígalo con el tipo ENUM_TIMEFRAMES
 

¡¡¡Gracias!!! ¿Es lo mismo que double, string o int? No entiendo, perdón, ¿dónde pongo este tipo?

De acuerdo, ¡gracias!

 
Valmars:
Esto es puramente un error de los probadores. El campo Trans.price_tp en caso de TRADE_TRANSACTION_DEAL_ADD puede contener 0 o cualquier basura. El comercio en línea produce todo correctamente.
Gracias. Arreglado. La solución estará disponible en la próxima versión.
 
//+------------------------------------------------------------------+
//|| cs2011.mq5 ||
//| Copyright © 2011, Xupypr |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Xupypr"
#versión de la propiedad "1.1"
//+-----------------------------------+
input double Riesgo=3; // lote inicial
entrada int TP=2200;
input int SL=0;
input int Fast=30;
input int Lento=500;
input int Sign=36;
//+-----------------------------------+
int Dinero, Depósito=5000;
int MACD;
//+-----------------------------------+
void OnInit()
{
MACD=iMACD(NULL,0,Rápido,Lento,Signo,PRECIO_CIERRE);
}
//+-----------------------------------+
void OnTick()
{
static bool SeñalArriba,SeñalAbajo;
if(TradeSignalCounter(UpSignal,DnSignal)) TradePerformer(UpSignal,DnSignal);
}
//+-----------------------------------+
bool TradeSignalCounter(bool &UpSignal,bool &DnSignal)
{
if(Bars(_Symbol,0)<100) return(false);
static int Recount;
if(IsNewBar() || Recuento)
{
doble Ind[2],Sig[3];
DnSignal=false;
UpSignal=false;
Recuento=falso;
if(CopyBuffer(MACD,0,1,2,Ind)<0) Recount=true;
if(CopyBuffer(MACD,1,1,3,Sig)<0) Recount=true;
if(Recount==true) return(false);
if(Ind[0]>0 && Ind[1]<0) DnSignal=true;
if(Ind[0]<0 && Ind[1]>0) UpSignal=true;
if(Ind[1]<0 && Sig[0]<Sig[1] && Sig[1]>Sig[2]) DnSignal=true;
if(Ind[1]>0 && Sig[0]>Sig[1] && Sig[1]<Sig[2]) UpSignal=true;
return(true);
}
return(false);
}
//+-----------------------------------+
bool TradePerformer(bool &UpSignal,bool &DnSignal)
{
if(UpSignal)
{
if(PositionOpen(POSITION_TYPE_BUY)) UpSignal=false;
}
if(DnSignal)
{
if(PositionOpen(POSITION_TYPE_SELL)) DnSignal=false;
}
return(true);
}
//+-----------------------------------+
double Dinero_M()
{
HistorySelect(0,TimeCurrent());
int total=HistoriaDealsTotal();
doble beneficio=0;
for(int i=0;i<total;i++)
{
ulong deal_ticket=HistoryDealGetTicket(i);
if(HistoryDealGetString(deal_ticket,DEAL_SYMBOL)!=_Symbol) continue;
if(HistoryDealGetInteger(deal_ticket,DEAL_TYPE)>1) continue;
profit+=HistoriaDealGetDouble(deal_ticket,DEAL_PROFIT);
profit+=HistoriaDealGetDouble(deal_ticket,DEAL_SWAP);
}
Dinero=Depósito+Ganancia;
if(PositionSelect(_Symbol))
{
Money+=PositionGetDouble(POSITION_PROFIT);
Money+=PositionGetDouble(POSITION_SWAP);
}
double Min=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double Limit=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_LIMIT);
doble Lotes=Riesgo*Dinero/Depósito;
Lotes=MathMin(Límite,MathMax(Mín,Lotes));
return(Lots);
}
//+-----------------------------------+
bool PositionOpen(ENUM_POSITION_TYPE Tipo)
{
Solicitud MqlTradeRequest;
MqlTradeResult resultado;
double volumen=Money_M();
doble takeprofit=0,stoploss=0;
if(PositionSelect(_Symbol))
{
double volumepos=PositionGetDouble(POSITION_VOLUME);
if(PositionGetInteger(POSITION_TYPE)==Tipo) volume-=volumepos;
si no, volumen+=volumenpos;
}
for(int i=0;i<10;i++)
{
volumen=NormalizarDoble(volumen,1);
if(volumen<=0) break;
if(Type==POSITION_TYPE_SELL)
{
request.type=ORDER_TYPE_SELL;
request.price=SymbolInfoDouble(_Symbol,SYMBOL_BID);
if(TP!=0) takeprofit = request.price-TP*_Point;
if(SL!=0) stoploss = request.price+SL*_Point;
}
if(Type==POSITION_TYPE_BUY)
{
request.type=ORDER_TYPE_BUY;
request.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
if(TP!=0) takeprofit = request.price+TP*_Point;
if(SL!=0) stoploss = request.price-SL*_Point;
}
request.action = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.volume = MathMin(volume,SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX));
request.sl = stoploss;
request.tp = takeprofit;
request.deviation=SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);
request.type_filling=ORDER_FILLING_AON;
request.comment=DoubleToString(Money,2)+"$";
if(!OrderCheck(request,check))
{
if(check.margin_level<100) volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
Print("Código de OrderCheck: ",check.retcode);
continuar;
}
if(!OrderSend(request,result)|| result.deal==0)
{
Print("Código de envío del pedido: ",result.retcode);
if(result.retcode==TRADE_RETCODE_TRADE_DISABLED) break;
if(result.retcode==TRADE_RETCODE_MARKET_CLOSED) break;
if(result.retcode==TRADE_RETCODE_NO_MONEY) break;
if(result.retcode==TRADE_RETCODE_TOO_MANY_REQUESTS) Sleep(5000);
if(result.retcode==TRADE_RETCODE_FROZEN) break;
if(result.retcode==TRADE_RETCODE_CONNECTION) Sleep(15000);
if(result.retcode==TRADE_RETCODE_LIMIT_VOLUME) break;
}
si no volumen-=resultado.volumen;
Sleep(1000);
}
if(!PositionSelect(_Symbol)) return(false);
return(true);
}
//+-----------------------------------+
bool IsNewBar()
{
static datetime Told;
datetime Tnew[1];
CopyTime(_Symbol,PERIOD_CURRENT,0,1,Tnew);
if(Tnew[0]!=Told)
{
Told=Tnew[0];
return(true);
}
return(false);
}
//+-----------------------------------+

Por favor, indique por qué la línea request.type_filling=ORDER_FILLING_AON; en el EA contiene el error 'ORDER_FILLING_AON' - identificador no declarado cs2011.mq5 127 28 en la versión 697



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

Por favor, indique por qué la línea request.type_filling=ORDER_FILLING_AON; en el EA contiene el error 'ORDER_FILLING_AON' - identificador no declarado cs2011.mq5 127 28 en la versión 697

Porque el lenguaje ha cambiado desde que se escribió la EA.

ponga request.type_filling=ORDER_FILLING_AON en esta línea;

request.type_filling=ORDER_FILLING_FOK; y buena suerte.

O simplemente puedes poner 0

request.type_filling=0;

también funcionará.

PS o alternativamente (para evitar tener que editar todo el EA) puedes poner un parche en la parte superior de todo

#define ORDER_FILLING_AON ORDER_FILLING_FOK

Esto es sólo en caso de que ORDER_FILLING_AON se mencione varias veces.

 
Por alguna razón veo la siguiente imagen: cuando pego en el terminal un indicador desde el Navegador a un gráfico, pero el gráfico muestra un área vacía para el indicador, el indicador en sí no se muestra, pero si abro la lista de índices del gráfico, aparece allí con la nota "Depuración". ¿Qué es este bicho y cómo puedo combatirlo?
 
marketeer:
Por alguna razón veo la siguiente imagen: cuando pego en el terminal un indicador desde el Navegador a un gráfico, aparece un área vacía para el indicador en el gráfico, el indicador en sí no se muestra, pero si abro la lista de índices del gráfico, aparece allí con la nota "Depuración". ¿Qué es este bicho y cómo lo afronto?
Volver a compilar
 

Buena gente, ¡ayuda!

Tome el código más simple.

#property copyright "Copyright 2011,"
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
double Vhod;
       Vhod=linfunc(15);

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
     }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
     }
//+------------------------------------------------------------------+
double  linfunc(int b) // имя функции и список параметров
  {
  double a;
   while((a/b)<1 && !IsStopped())//---------
     {
      a=a+1;
     }
     double f=a+b;
// составной оператор
   return(a+b);           // возвращаемое значение

  }

Lo compilamos en la compilación 687 y obtenemos Vhod=0 en el depurador.

¿Cómo lo entiende? Al mismo tiempo, a veces tengo Vhod=30. (extraño pero cierto).

devuelve alguna tontería...

¿Qué son estos fallos o me estoy perdiendo algo?