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

 
Andrey Sokolov:

¿es un corredor de divisas o algo así?

Es un BANCO.
 
MakarFX:
Esto es el BANCO.

No está claro, pero está bien.

Escriben que está disponible enel MICEX (FORTS), y Alpari también dijo que lo tienen en las cuentas de la competencia.

Quizás con las expresiones "sólo", "siempre". "nunca", "nadie pero" y similares deberían tener más cuidado.

¿Pueden decirme, en las cuentas de operaciones regulares, cuándoun corredor cierrauna posiciónabiertay luego la reabre?
 
Andrey Sokolov:

No está claro, pero está bien.

Escriben que está disponible enel MICEX (FORTS), y Alpari también dijo que lo tienen en las cuentas de la competencia.

Quizás con las expresiones "sólo", "siempre". "nunca", "nadie pero" y similares deberían tener más cuidado.

¿Pueden decirme si se da la situación de que en una cuenta de trading normalel broker haya cerradolas posicionesabiertasy las haya abierto de nuevo?
Es una situación individual, en Ucrania los bancos están obligados por ley a cerrar las transacciones en el mercado de divisas durante el día en curso (a efectos de información).
 
Estimados profesionales. Necesitamos ayuda. Por ejemplo, tenemos un indicador MACD. Su estructura es iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0). ¿Cómo puedo cambiar NULL para obtener cálculos no para este par de divisas sino para otro en el mismo gráfico de pares de divisas? Puse iMACD("USDJPY",0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0), pero no me lleva a ninguna parte. Todos los cálculos son nulos. ¿Qué tiene de malo?
 
Michail_David:
Estimados profesionales. Necesito ayuda. Por ejemplo, tenemos un indicador MACD. Su estructura es iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0). ¿Cómo puedo cambiar NULL para obtener cálculos no para este par de divisas sino para otro en el mismo gráfico de pares de divisas? Puse iMACD("USDJPY",0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0), pero no me lleva a ninguna parte. Todos los cálculos son nulos. ¿Qué tiene de malo?

¿Existe el símbolo "USDJPY" en la visión general del mercado?

 
Michail_David:
Estimados profesionales. Necesito tu ayuda. Por ejemplo, tenemos un indicador MACD. Su estructura es iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0). ¿Cómo puedo cambiar NULL para obtener cálculos no para este par de divisas sino para otro en el mismo gráfico de pares de divisas? Puse iMACD("USDJPY",0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0), pero no me lleva a ninguna parte. Todos los cálculos son nulos. ¿Qué tiene de malo?

Y si haces trampa así

GBPJPYH4

//+------------------------------------------------------------------+
//|                                                 ExamplesMACD.mq5 |
//|                   Copyright 2009-2020, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright   "2009-2020, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property description "Moving Average Convergence/Divergence"
#include <MovingAverages.mqh>
//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   2
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_type2   DRAW_LINE
#property indicator_color1  Silver
#property indicator_color2  Red
#property indicator_width1  2
#property indicator_width2  1
#property indicator_label1  "Examples MACD"
#property indicator_label2  "Examples Signal"
//--- input parameters
input string             InpPara="USDJPY";            // Para
input int                InpFastEMA=12;               // Fast EMA period
input int                InpSlowEMA=26;               // Slow EMA period
input int                InpSignalSMA=9;              // Signal SMA period
input ENUM_APPLIED_PRICE InpAppliedPrice=PRICE_CLOSE; // Applied price
//--- indicator buffers
double ExtMacdBuffer[];
double ExtSignalBuffer[];
double ExtFastMaBuffer[];
double ExtSlowMaBuffer[];

int    ExtFastMaHandle;
int    ExtSlowMaHandle;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMacdBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtSignalBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ExtFastMaBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,ExtSlowMaBuffer,INDICATOR_CALCULATIONS);
//--- sets first bar from what index will be drawn
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpSignalSMA-1);
//--- name for indicator subwindow label
   string short_name=StringFormat("ExamplesMACD(%d,%d,%d)",InpFastEMA,InpSlowEMA,InpSignalSMA);
   IndicatorSetString(INDICATOR_SHORTNAME,short_name);
//--- get MA handles
   ExtFastMaHandle=iMA(InpPara,0,InpFastEMA,0,MODE_EMA,InpAppliedPrice);
   ExtSlowMaHandle=iMA(InpPara,0,InpSlowEMA,0,MODE_EMA,InpAppliedPrice);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   if(rates_total<InpSignalSMA)
      return(0);
//--- not all data may be calculated
   int calculated=BarsCalculated(ExtFastMaHandle);
   if(calculated<rates_total)
     {
      Print("Not all data of ExtFastMaHandle is calculated (",calculated," bars). Error ",GetLastError());
      return(0);
     }
   calculated=BarsCalculated(ExtSlowMaHandle);
   if(calculated<rates_total)
     {
      Print("Not all data of ExtSlowMaHandle is calculated (",calculated," bars). Error ",GetLastError());
      return(0);
     }
//--- we can copy not all data
   int to_copy;
   if(prev_calculated>rates_total || prev_calculated<0)
      to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
      if(prev_calculated>0)
         to_copy++;
     }
//--- get Fast EMA buffer
   if(IsStopped()) // checking for stop flag
      return(0);
   if(CopyBuffer(ExtFastMaHandle,0,0,to_copy,ExtFastMaBuffer)<=0)
     {
      Print("Getting fast EMA is failed! Error ",GetLastError());
      return(0);
     }
//--- get SlowSMA buffer
   if(IsStopped()) // checking for stop flag
      return(0);
   if(CopyBuffer(ExtSlowMaHandle,0,0,to_copy,ExtSlowMaBuffer)<=0)
     {
      Print("Getting slow SMA is failed! Error ",GetLastError());
      return(0);
     }
//---
   int start;
   if(prev_calculated==0)
      start=0;
   else
      start=prev_calculated-1;
//--- calculate MACD
   for(int i=start; i<rates_total && !IsStopped(); i++)
      ExtMacdBuffer[i]=ExtFastMaBuffer[i]-ExtSlowMaBuffer[i];
//--- calculate Signal
   SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Alexey Viktorov:

¿Está presente el símbolo "USDJPY" en la visión general del mercado?

Sí. Lo es, Víctor.

 
SanAlex:

y si haces trampa así.

Alex, no funcionará. El indicador debe dibujar dos MACDs simultáneamente para dos pares de divisas. Sin embargo, con este código es imposible hincharse. También quiero añadir el cálculo de la correlación. Pero gracias por el consejo sobre cómo se debe especificar el par de divisas.

 

Si he entendido bien, el par de divisas debe especificarse como "EURUSD" en cualquier indicador. En este sentido, mi pregunta es


void OnInit()

  {
input string Currency = "JPY"; //Выбор валютной пары
input string Major_pair = "USD"; // Выбор валюты для корреляции
input bool Direct_correlation = true; // Выбор прямой и обратной корреляции
string Major_currpair = Symbol();
string two_pair;
//--------------------------------------------------------------------
int position =StringFind(Major_currpair,Major_pair,0);
   if(position == -1)
      Print("Не верно указана валюта корреляции");
   if(Direct_correlation == true)
      two_pair =StringConcatenate(Currency,Major_pair);
   else
      two_pair =StringConcatenate(Major_pair,Currency);
   Print("Two_pair = ", two_pair);
   Print("Major_currpair = ",Major_currpair);
}

¿Cómo puedo insertar el símbolo " en una cadena? Porque el par de divisas está impreso en el diario como USDJPY, no "USDJPY".

 
Michail_David:

¿Cómo puedo insertar el símbolo " en la línea? Como el par de divisas en la revista está impreso como USDJPY en lugar de "USDJPY".

https://www.mql5.com/ru/docs/basis/types/stringconst

https://www.mql5.com/ru/docs/basis/types/integer/symbolconstants

Razón de la queja: