Tal vez hay una función en MQL5? Quiero entender por qué me sale este mensaje 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alerta: Solicitud para colocar la orden de venta falló - código de error:4756
//--- собираем все вместеif(Sell_Condition_1 && Sell_Condition_2)
{
if(Sell_Condition_3 && Sell_Condition_4)
{
// есть ли в данный момент открытая позиция на продажу?if(Sell_opened)
{
Alert("Уже есть позиция на продажу!!!");
return; // не добавлять к открытой позиции на продажу
}
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // последняя цена Bid
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type= ORDER_TYPE_SELL; // ордер на продажу
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=100; // проскальзывание от текущей цены//--- отсылаем ордерOrderSend(mrequest,mresult);
// анализируем код возврата торгового сервераif(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
{
Alert("Ордер Sell успешно помещен, тикет ордера #:",mresult.order,"!!");
}
else
{
Alert("Запрос на установку ордера Sell не выполнен - код ошибки:",GetLastError());
return;
}
}
}
return;
}
Tal vez hay una función en MQL5? Quiero entender por qué me sale este mensaje 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alerta: Solicitud para colocar la orden de venta falló - código de error:4756
Por favor, dígame cómo interpretar esta línea en el código -- CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[]; Entiendo que CParabolicStop y CNRTRStop son clases, * punteros, matrices SARTrailing[] y NRTRTrailing[] Pero ¿qué significan estas cadenas? El artículo de este asesorhttps://www.mql5.com/es/articles/134 dice que esto es --- ¿Cómo entiendo esto? ¿Y dónde se crean exactamente estas matrices? ¿Puedo realmente cargar clases en matrices, u objetos de clases? ¿Y para qué sirve en términos prácticos?
//+------------------------------------------------------------------+//| Sample_TrailingStop.mq5 |//| MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"MetaQuotes Software Corp."#property link"http://www.mql5.com"#property version"1.00"#include <Sample_TrailingStop.mqh> // подключение класса трейлинга//--- input parametersinputdouble SARStep = 0.02; // Шаг Parabolicinputdouble SARMaximum = 0.02; // Максимум Parabolicinputint NRTRPeriod = 40; // Период NRTRinputdouble NRTRK = 2; // Коэффициент NRTRstring Symbols[]={"EURUSD","GBPUSD","USDCHF","USDJPY"};
CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[];
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
ArrayResize(SARTrailing,ArraySize(Symbols)); // изменение размера в соответствии с количеством используемых символовArrayResize(NRTRTrailing,ArraySize(Symbols)); // изменение размера в соответствии с количеством используемых символов for(int i=0;i<ArraySize(Symbols);i++)
{ // для всех символов
SARTrailing[i]=new CParabolicStop(); // создание экземпляра класса CParabolicStop
SARTrailing[i].Init(Symbols[i],PERIOD_CURRENT,false,true,true,5,15+i*17,Silver,Blue); // инициализация экземпляра класса CParabolicStop if(!SARTrailing[i].SetParameters(SARStep,SARMaximum))
{ // установка параметров экземпляра класса CParabolicStop Alert("trailing error");
return(-1);
}
SARTrailing[i].StartTimer(); // запуск таймера//----
NRTRTrailing[i]=new CNRTRStop(); // создание экземпляра класса CNRTRStop
NRTRTrailing[i].Init(Symbols[i],PERIOD_CURRENT,false,true,true,127,15+i*17,Silver,Blue); // инициализация экземпляра класса CNRTRStop if(!NRTRTrailing[i].SetParameters(NRTRPeriod,NRTRK))
{ // установка параметров экземпляра класса CNRTRcStop Alert("trailing error");
return(-1);
}
NRTRTrailing[i].StartTimer(); // запуск таймера
}
return(0);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].Deinit();
NRTRTrailing[i].Deinit();
delete(SARTrailing[i]);
delete(NRTRTrailing[i]);
}
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].DoStoploss();
NRTRTrailing[i].DoStoploss();
}
}
//+------------------------------------------------------------------+voidOnTimer()
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].Refresh();
NRTRTrailing[i].Refresh();
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam
)
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].EventHandle(id,lparam,dparam,sparam);
NRTRTrailing[i].EventHandle(id,lparam,dparam,sparam);
}
}
//+------------------------------------------------------------------+
Y si no es difícil, por favor especifique dónde está escrito sobre este asterisco como un puntero * en la documentación. Lo he visto una vez, pero ya he mirado en un libro de texto y no lo encuentro((((
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
Hola, ¿es posible y cómo crear un algoritmo de apertura y cierre de una operación sin utilizar ningún indicador?
Por ejemplo, tome dos líneas, una línea de tendencia es alcista y la segunda también es bajista, póngalas una encima de la otra, hay un punto de intersección entre las dos líneas, supongamos que está en el 15-30 en el tiempo, entonces ¿cómo hacer que la orden se abra automáticamente al mismo tiempo para empezar en cualquier dirección, cómo hacer que el algoritmo encuentre estos puntos y abra una posición? Me gustaría que me lo aclararan y que me dieran su opinión.
Hola!!! Una pregunta como esta? Necesito recoger en matrices, los indicadores maneja en diferentes marcos de tiempo, pero resulta que
Fractal=iFractals(Symbol(),tik);
no se puede hacer de esa manera( Extraño, ¿por qué los números primos se puede utilizar en este parámetro, pero no una variable con una constante numérica?
voidOnTick()
{
for(int tik =1; tik <= 6; tik++)
{
Fractal=iFractals(Symbol(),tik); // Вот эта tik переменная вызывает ошибку при компиляции
switch(tik)
{
case1:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_W1),FractalUP_W1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_W1),FractalDown_W1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_W1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_W1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case2:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUP_D1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalDown_D1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_D1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_D1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case3:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_H4),FractalUP_H4); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_H4),FractalDown_H4); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_H4,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_H4,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case4:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_H1),FractalUP_H1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_H1),FractalDown_H1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_H1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_H1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case5:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_M30),FractalUP_30); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_M30),FractalDown_30); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_30,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_30,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case6:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_M15),FractalUP_15); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_M15),FractalDown_15); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_15,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_15,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
}
}
Kira27: Hola!!! Tengo una pregunta. Necesito recoger los manejadores de indicadores en diferentes marcos de tiempo en arrays, pero resulta que no puede hacer eso( Es extraño, ¿por qué puedo usar números primos en este parámetro, pero no una variable con una constante numérica?
Kira27: Necesito recopilar las manillas de los indicadores en diferentes marcos temporales en matrices, pero resulta que no puede hacerse así( Me pregunto por qué se pueden usar números primos en este parámetro, pero no variables con constantes numéricas?
¡¡¡La manija del indicador en MQL5 DEBE CREARSE UNA VEZ!!! ¡¡Y debe hacerse en OnInit()!!
Pero, ¿cómo puedo obtener este valor para otro par de divisas?
¿Puede decírmelo, por favor?
Lo que es _Digits lo entiendo.
¿Cómo conseguirlo para otro par de divisas?
Por favor, ayúdame.
DÍGITOS_SÍMBOLO
Número de dígitos después del punto decimal
int
MqlTradeRequest mrequest ???
Tal vez hay una función en MQL5? Quiero entender por qué me sale este mensaje 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alerta: Solicitud para colocar la orden de venta falló - código de error:4756
Hola!!! ¿Puedes decirme cómo registrar la estructura completada
MqlTradeRequest mrequest ???
Tal vez hay una función en MQL5? Quiero entender por qué me sale este mensaje 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alerta: Solicitud para colocar la orden de venta falló - código de error:4756
https://www.mql5.com/ru/forum/327894
Y aquí está la transcripción: aquícómo eliminar mediante programación el cuadro de diálogo de alerta de la ventana?
Y si no es difícil, por favor especifique dónde está escrito sobre este asterisco como un puntero * en la documentación. Lo he visto una vez, pero ya he mirado en un libro de texto y no lo encuentro((((
Hola, ¿es posible y cómo crear un algoritmo de apertura y cierre de una operación sin utilizar ningún indicador?
Por ejemplo, tome dos líneas, una línea de tendencia es alcista y la segunda también es bajista, póngalas una encima de la otra, hay un punto de intersección entre las dos líneas, supongamos que está en el 15-30 en el tiempo, entonces ¿cómo hacer que la orden se abra automáticamente al mismo tiempo para empezar en cualquier dirección, cómo hacer que el algoritmo encuentre estos puntos y abra una posición? Me gustaría que me lo aclararan y que me dieran su opinión.
¿Podemos crear un EA basado en dicho T3?no se puede hacer de esa manera( Extraño, ¿por qué los números primos se puede utilizar en este parámetro, pero no una variable con una constante numérica?
Hola!!! Tengo una pregunta. Necesito recoger los manejadores de indicadores en diferentes marcos de tiempo en arrays, pero resulta que
no puede hacer eso( Es extraño, ¿por qué puedo usar números primos en este parámetro, pero no una variable con una constante numérica?
Porque tiene que haber un marco temporal
Identificador
Descripción
PERIODO_CURRENTE
Período actual
PERIODISTA_M1
1 minuto
PERIODISTA_M2
2 minutos
PERIOD_M3
3 minutos
PERIOD_M4
4 minutos
PERIODISTA_M5
5 minutos
PERIOD_M6
6 minutos
PERIODISTA_M10
10 minutos
PERIODISTA_M12
12 minutos
PERIODISTA_M15
15 minutos
PERIODISTA_M20
20 minutos
PERIODISTA_M30
30 minutos
PERIOD_H1
1 hora
PERIOD_H2
2 horas
PERIOD_H3
3 horas
PERIOD_H4
4 horas
PERIOD_H6
6 horas
PERIOD_H8
8 horas
PERIOD_H12
12 horas
PERIOD_D1
1 día
PERIODO_W1
1 semana
PERIOD_MN1
1 mes
Necesito recopilar las manillas de los indicadores en diferentes marcos temporales en matrices, pero resulta que
no puede hacerse así( Me pregunto por qué se pueden usar números primos en este parámetro, pero no variables con constantes numéricas?
¡¡¡La manija del indicador en MQL5 DEBE CREARSE UNA VEZ!!! ¡¡Y debe hacerse en OnInit()!!