Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1340

 
@Vitaly Muzichenko@Iurii Tokman ¡Muchas gracias chicos, todo ha funcionado! No sé qué haría sin ti. Buena suerte en el año.
Vitaly Muzichenko
Vitaly Muzichenko
  • www.mql5.com
Профиль трейдера
 

Buenos días a todos. Tengo un EA que señala cuando la línea de tendencia y la línea horizontal cruzan un determinado color. Decidí rehacerlo para que señale cuando la línea de tendencia y la línea horizontal cruzan un determinado estilo. Ha funcionado. Pero necesito que señale cuando una línea de tendencia cruza sólo el rayo a la derecha. Entiendo que tengo que añadir

OBJPROP_RAY_RIGHT

pero no sé dónde ni cómo. Gracias de antemano.
Archivos adjuntos:
 

Hola a todos J. Sigo serrando la máquina del Grial. Y me encontré con algo tan poco agradable como el error 130 al establecer órdenes pendientes. Pero lo interesante es que al abrir con órdenes de mercado todo va bien. No aparecen paradas erróneas.

Mencionaré el hecho de que hay dos formas de calcular el tope. Puede utilizar un tope fijo en puntos o atp.

Si establecemos un stop fijo o atp, obtenemos el error 130 al abrir una orden pendiente de Sell Stop, pero la pendiente de Buy Stop parece abrirse normalmente, aunque no estoy 100% seguro. Aunque lo compruebo y veo que las órdenes stop de compra pendientes se abren con el error 130 también. Obtengo el valor del stop loss de esta manera


extern double atr_sl_period= 14; // ПЕРИОД АТR СТОП ЛОССА

extern   ENUM_TIMEFRAMES   PeriodForWork_sl        =  PERIOD_H4;           // ТФ SL  ПО АТР

void OnTick()
  {
double sl; // стоп лосс ордеров
if(tip_sl==en_po_atr)
     { //ЕСЛИ ТИП СТОП ЛОССА СТОИТ ПО АТР ТО ВЫСЧИТЫВАЕМ ЕГО ИЗ АТР
     //Print("СТОП ПО АТР, ЕГО РАЗМЕР ");
     sl= iATR( NULL,PeriodForWork_sl,atr_sl_period,1);// ПОЛУЧЕНИЕ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССА
      //Print("СТОП ПО АТР, ЕГО РАЗМЕР "+sl);
     }
     else //ИНАЧЕ- ТО ЕСТЬ ЕСЛИ СТОП ЛОСС ФИКСИРОВАННЫЙ В ПУНКТАХ
     {
     //Print("СТОП ЛОС ФИКСИРОВАННЫЙ В ПУНКТАХ");
     sl= razmer_fikc_sl*Point; // ПЕЕРМЕННОЙ СТОП ЛОССА ПРИСВАЕВАЕМ ФИКСИРОВАНОНЕ ЗНАЧЕНИЕ ПУНКТОВ И ДОМНОЖАЕМ НА ПОИНТ
     }


   
  }

Todo es normal cuando se abre con órdenes de mercado. Abro las órdenes pendientes así

OrderSend(Symbol(),OP_SELLSTOP,lot,min_Price,slippages,min_Price+sl , min_Price-tp ,comment_ao_otloj_sell); // ОТКРКЫВВАЕМ ОТЛОЖЕННЫЙ СЕЛ ОРДЕР

OrderSend(Symbol(),OP_BUYSTOP,lot,max_Price,slippages,max_Price-sl,max_Price+tp ,comment_ao_otloj_buy,magik_number,TimeCurrent()+order_life_time); // ОТКРЫВАЕМ ОТЛОЖЕННЫЙ БАЙ ОРДЕР

Por favor, dígame qué estoy haciendo mal y cómo debo solucionarlo.

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
DanilaMactep:

Hola a todos J. Sigo serrando la máquina del Grial. Y me encontré con algo tan poco agradable como el error 130 al establecer órdenes pendientes. Pero lo interesante es que al abrir con órdenes de mercado todo va bien. No aparecen paradas erróneas.

Mencionaré el hecho de que hay dos formas de calcular el tope. Puede utilizar un tope fijo en puntos o atp.

Si establecemos un stop fijo o atp, obtenemos el error 130 al abrir una orden pendiente de Sell Stop, pero la pendiente de Buy Stop parece abrirse normalmente, aunque no estoy 100% seguro. Aunque lo compruebo y veo que las órdenes stop de compra pendientes se abren con el error 130 también. Obtengo el valor del stop loss de esta manera


Todo es normal cuando se abre con órdenes de mercado. Abro las órdenes pendientes así

Por favor, dígame qué estoy haciendo mal y cómo debo solucionarlo.

no hay normalización de precios
no hay contabilidad de stop loss

 

DanilaMactep: Получаю значение стоп лосса во таким макаром

Makar, por favor no lo toques).

DanilaMactep:

¿Puedes decirme qué estoy haciendo mal y cómo solucionarlo?

Pruebe a aumentar el tope fijo y si el error para un tope fijo desaparece, el problema está en MODE_STOPLEVEL

También hay que comprobar el TakeProfit

 
DanilaMactep:

Hola a todos J. Sigo serrando la máquina del Grial. Y me encontré con algo tan poco agradable como el error 130 al establecer órdenes pendientes. Pero lo interesante es que al abrir con órdenes de mercado todo va bien. No aparecen paradas erróneas.

Mencionaré el hecho de que hay dos formas de calcular el tope. Puede utilizar un tope fijo en puntos o atp.

Si establecemos un stop fijo o atp, obtenemos el error 130 al abrir una orden pendiente de Sell Stop, pero la pendiente de Buy Stop parece abrirse normalmente, aunque no estoy 100% seguro. Aunque lo compruebo y veo que las órdenes stop de compra pendientes se abren con el error 130 también. Obtengo el valor del stop loss de esta manera


Todo es normal cuando se abre con órdenes de mercado. Abro las órdenes pendientes así

Por favor, por favor, dígame qué estoy haciendo mal y cómo debo solucionarlo.

El error 130 se produce no sólo cuando se coloca una orden stop o take, sino también cuando la orden pendiente se coloca demasiado cerca del precio actual. No el stop o la toma de esa orden, sino el precio de apertura/fijación de la orden.

 
        if(CopyTicks(Symbol(),ticks,COPY_TICKS_TRADE,0,1)==1)
            start_time=ulong(ticks[0].time_msc);
  

¿Qué significa el punto?

 
ascerdfg:

¿Qué significa el punto?

Aquí es donde entras tú.
 
ascerdfg:

¿Qué significa un punto?

Estructuras y, clases e interfaces
 
Alexey Viktorov:

El error 130 se produce no sólo cuando se establece un stop o una toma, sino también cuando se establece una orden pendiente demasiado cerca del precio actual. No el stop o la toma de esta orden, sino el precio de apertura/fijación de la orden.

AL ESTABLECER UNA ORDEN PENDIENTE, CALCULO EL PRECIO DE LA SIGUIENTE MANERA (NO ME METO CONTIGO, AL MENOS NO ERES DE LOS QUE SE METEN;-))

                    int min_bars= iLowest(NULL, // ТЕКУЩИЙ СИМВОЛ
          double min_Price=iHigh(Symbol(),// СИМВОЛ ТЕКУЩЕГО ИНСТРУМЕНТА(НА КОТОРОМ РАБОТАЕТ ГРААЛЬ;-)
          PeriodForWork_pending_orders, // ТФ НА КОТОРОМ АСЧИТЫВАЕМ ЦЕНУ МИНИМУМА
          min_bars//  НА КАКОМ БАРЕ БЫЛ МАКС ТОТ И ПОДСТАВИМ;)
        
          
          ); 

¿CÓMO COMPRUEBO SI EL VALOR OBTENIDO ESTÁ DENTRO DEL RANGO PERMITIDO? NO ENTIENDO QUÉ DEBO HACER, Y CÓMO ME ASEGURO DE QUE SI EL VALOR CALCULADO ES MENOR QUE EL PERMITIDO, LA ORDEN SE ABRIRÍA DE TODOS MODOS A LA MÍNIMA DISTANCIA POSIBLE?

Razón de la queja: