No se puede abrir "C:\NArchivos de programa\NdeAlpari Limited MT5 Demo 1\MQL5\Ninclude\NExpert\Signal\NMySignals\ACH_HM_RSI.incluir archivo expert_ah_hm_rsi.mq5 14 11
No se puede abrir "C:\NArchivos de programa\NdeAlpari Limited MT5 Demo 1\MQL5\Ninclude\NExpert\Signal\NMySignals\ACH_HM_RSI.incluir archivo expert_ah_hm_rsi.mq5 14 11
Estoy afinando el indicador CrossArbitr. Ayúdame a entender. Necesito que el valor de b(Total) sume s durante un minuto (0 barra) y se muestre con los otros indicadores en el gráfico, después de un minuto la suma s se fijó, s1=s, comienza a formarse de nuevo. El indicador s1 one también debe aparecer en el gráfico. Aquí está el código del indicador.
//+------------------------------------------------------------------+//| CrossArbitr.mq4 |//| Scriptong |//| |//+------------------------------------------------------------------+#property copyright"Scriptong"#property link""#property indicator_chart_window//---- input parametersexternbool ShowBid=false;
externbool ShowAsk=false;
externcolor BidColor = Lime;
externcolor AskColor = Yellow;
externint AlarmIfPointDifference = 10;
externstring AlarmFile = "wait.wav";
bool Activate = False;
string FP, SP;
double Tick;
int WayForCross;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- indicatorsstring S = Symbol();
if(StringFind(S, "USD", 0) != -1)
{
Comment("Индикатор работает только с кроссовыми парами (GBPJPY, EURJPY, EURGBP и т. д)!");
return(0);
}
if(StringLen(S) != 6)
{
Comment("Индикатор работает только с валютными парами, у которых название состоит из шести символов!");
return(0);
}
// Поиск первой валютной пары кросса
FP = StringSubstr(S, 0, 3)+"USD";
MarketInfo(FP, MODE_BID);
if(GetLastError() > 0)
{
FP = "USD"+StringSubstr(S, 0, 3);
MarketInfo(FP, MODE_BID);
if(GetLastError() > 0)
{
Comment("Невозможно найти инструмент ", FP, " или ", StringSubstr(S, 0, 3)+"USD. Необходимо добавить его в Обзоре рынка и перезапустить индикатор.");
return(0);
}
}
// -------------------------------------- // "Создание" второй валютной пары кросса
SP = "USD"+StringSubstr(S, 3, 3);
MarketInfo(SP, MODE_BID);
if(GetLastError() > 0)
{
SP = StringSubstr(S, 3, 3)+"USD";
MarketInfo(SP, MODE_BID);
if(GetLastError() > 0)
{
Comment("Невозможно найти инструмент ", SP, " или ", StringSubstr(S, 3, 3)+"USD. Необходимо добавить его в Обзоре рынка и перезапустить индикатор.");
return(0);
}
}
// -------------------------------------- // Определение пути синтеза кроссаif (StringFind(FP, "USD") == 3 && StringFind(SP, "USD") == 0)
WayForCross = 1;
if (StringFind(FP, "USD") == 0 && StringFind(SP, "USD") == 0)
WayForCross = 2;
if (StringFind(FP, "USD") == 3 && StringFind(SP, "USD") == 3)
WayForCross = 3;
if (StringFind(FP, "USD") == 0 && StringFind(SP, "USD") == 3)
WayForCross = 4;
// -------------------------------
Tick = MarketInfo(Symbol(), MODE_TICKSIZE);
Activate = True;
//----return(0);
}
//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----Comment("");
if(ObjectFind("CrossBid") == 0)
ObjectDelete("CrossBid");
if(ObjectFind("CrossAsk") == 0)
ObjectDelete("CrossAsk");
//----return(0);
}
//+------------------------------------------------------------------+//| Приведение значений к точности одного тика |//+------------------------------------------------------------------+double ND(double A)
{
return(NormalizeDouble(A, Digits));
}
//+------------------------------------------------------------------+//| Расчет значения синтетического бида |//+------------------------------------------------------------------+double CalcBidWayForCross()
{
switch (WayForCross)
{
case1: return(ND(MarketInfo(FP, MODE_BID)*MarketInfo(SP, MODE_BID)));
case2: return(ND(MarketInfo(SP, MODE_BID)/MarketInfo(FP, MODE_ASK)));
case3: return(ND(MarketInfo(FP, MODE_BID)/MarketInfo(SP, MODE_ASK)));
case4: return(1/(ND(MarketInfo(FP, MODE_ASK)*MarketInfo(SP, MODE_BID))));
}
}
//+------------------------------------------------------------------+//| Расчет значения синтетического аска |//+------------------------------------------------------------------+double CalcAskWayForCross()
{
switch (WayForCross)
{
case1: return(ND(MarketInfo(FP, MODE_ASK)*MarketInfo(SP, MODE_ASK)));
case2: return(ND(MarketInfo(SP, MODE_ASK)/MarketInfo(FP, MODE_BID)));
case3: return(ND(MarketInfo(FP, MODE_ASK)/MarketInfo(SP, MODE_BID)));
case4: return(1/(ND(MarketInfo(FP, MODE_BID)*MarketInfo(SP, MODE_ASK))));
}
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start()
{
int counted_bars=IndicatorCounted();
//----if(!Activate)
return(0);
// Расчет синтетических Bid и Askdouble CalcBid = CalcBidWayForCross();
RefreshRates();
double CalcAsk = CalcAskWayForCross();
double n,m,b,s,s1;
int t = Seconds();
// -------------------------------// Рисуем уровень синтетического Bidif (ShowBid)
{
if(ObjectFind("CrossBid") == -1)
{
ObjectCreate("CrossBid", OBJ_HLINE, 0, 0, CalcBid);
ObjectSet("CrossBid", OBJPROP_COLOR, BidColor);
ObjectSet("CrossBid", OBJPROP_STYLE, STYLE_DOT);
}
elseif(!ObjectMove("CrossBid", 0, 1, CalcBid))
Print("Ошибка перемещения №", GetLastError());
}
// ---------------------------------- // Рисуем уровень синтетического Askif(ShowAsk)
{
if(ObjectFind("CrossAsk") == -1)
{
ObjectCreate("CrossAsk", OBJ_HLINE, 0, 0, CalcAsk);
ObjectSet("CrossAsk", OBJPROP_COLOR, AskColor);
ObjectSet("CrossAsk", OBJPROP_STYLE, STYLE_DOT);
}
elseObjectMove("CrossAsk", 0, 1, CalcAsk);
if(t > 0)
{s=b; b++;}
else s1=s;
}
// ---------------------------------- Comment("Реальный BID = ", DoubleToStr(Bid, Digits), ", реальный ASK = ", DoubleToStr(Ask, Digits),
"\nСинтетик BID = ", DoubleToStr(CalcBid, Digits), ", синтетик ASK = ", DoubleToStr(CalcAsk, Digits),
"\nРазница BID Синтетика и Реального =", n=(Bid-CalcBid),
"\, Разница ASK Синтетика и Реального =", m=(CalcAsk-Ask),
"\nИтог =", b=(CalcAsk-Ask) - (Bid-CalcBid),
"\nПрошлый бар =", s1, ", Текущий бар =", s
);
// Выдаем звуковой сигнал о превышении минимальной разностиif(ND(MathAbs(CalcBid-Bid)) >= ND(AlarmIfPointDifference*Point))
PlaySound(AlarmFile);
// -------------------------------------------------------- //----return(0);
}
//+------------------------------------------------------------------+
Además, estoy tratando de instalar un Asesor Experto Exp-Monitoring-Spread en un gráfico - no está instalado. MT4 escribe en el registro que no es un Asesor Experto y no puede ser instalado. No se han detectado errores en el compilador. Se ejecuta como una secuencia de comandos, pero el gráfico fuera de línea no funciona. ¿Qué se puede hacer? Se adjunta el código por si acaso.
ganri: ¿Es posible arreglar un EA en el que se quiera sustituir las operaciones abiertas normales por un trailing stop?
Si el Asesor Experto fue generado usando el Asistente MQL, entonces es fácil - cuando se crea un EA, es necesario especificar que se necesita un trailing stop y seleccionar en qué se basará el trailing stop.
barabashkakvn: Si el Asesor Experto fue generado usando el Asistente MQL, es fácil - cuando se crea un EA, es necesario especificar que se necesita un trailing stop y seleccionar en qué se basará el trailing stop.
¡¿Es posible descargar los gráficos para el análisis técnico, - índices S & P 500 Futures Chart, TA 25 Chart, y S & P 500 Chart si es posible puede decir cómo hacerlo, tal vez hay una explicación de cómo descargar! Se lo agradezco de antemano.
¿verdad?
Muestra error. Lohizo todo ¿funciona bien?
No se puede abrir "C:\NArchivos de programa\NdeAlpari Limited MT5 Demo 1\MQL5\Ninclude\NExpert\Signal\NMySignals\ACH_HM_RSI.incluir archivo expert_ah_hm_rsi.mq5 14 11
Muestra error. Lohizo todo ¿funciona bien?
No se puede abrir "C:\NArchivos de programa\NdeAlpari Limited MT5 Demo 1\MQL5\Ninclude\NExpert\Signal\NMySignals\ACH_HM_RSI.incluir archivo expert_ah_hm_rsi.mq5 14 11
Yo sí.
poner los archivos en las carpetas especificadas.
Lo soy.
poner los archivos en las carpetas especificadas.
Gracias, ¡funciona! :)
Hola a todos.
Estoy afinando el indicador CrossArbitr. Ayúdame a entender. Necesito que el valor de b(Total) sume s durante un minuto (0 barra) y se muestre con los otros indicadores en el gráfico, después de un minuto la suma s se fijó, s1=s, comienza a formarse de nuevo. El indicador s1 one también debe aparecer en el gráfico. Aquí está el código del indicador.
Además, estoy tratando de instalar un Asesor Experto Exp-Monitoring-Spread en un gráfico - no está instalado. MT4 escribe en el registro que no es un Asesor Experto y no puede ser instalado. No se han detectado errores en el compilador. Se ejecuta como una secuencia de comandos, pero el gráfico fuera de línea no funciona. ¿Qué se puede hacer? Se adjunta el código por si acaso.
¿Es posible arreglar un EA en el que se quiera sustituir las operaciones abiertas normales por un trailing stop?
Si el Asesor Experto fue generado usando el Asistente MQL, es fácil - cuando se crea un EA, es necesario especificar que se necesita un trailing stop y seleccionar en qué se basará el trailing stop.
Se lo agradezco de antemano.