Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1021

 
Hola. Ayuda con consejos. Probando un EA sensible a la cotización en una cuenta real pro-ecn alpari. Como resultado, el gráfico es significativamente diferente en el mismo intervalo, incluso después de descargar las cotizaciones y dos pruebas consecutivas. No estoy seguro de qué esperar en realidad.
 

Establezca una dispersión fija en el probador. En general, los EAs sensibles a estas cosas - por el retrete )

 
Sí, así es, muchas gracias. Sobre el EA, no lo sé. El autor sólo presenta la sensibilidad del EA como su principal ventaja. Porque describe que el Asesor Experto no se basa en indicadores, sino en el movimiento del precio. Por eso recomienda trabajar en cuentas ecn, y cotiza en dukascopy. ¿Qué te parece?
 
Lians:
Hola, queridos profesionales.

Hay un script para exportar las cotizaciones en el formato que yo quiera para las últimas 100 barras o hasta un momento determinado en el pasado. Funciona como debería. Pero si se lanza sobre el gráfico de visualización del probador, guarda las cotizaciones en función de la última vez que hay una cotización en el historial, no de la fecha y hora del probador.

¿Puedes enseñarle a guardar las últimas 100 barras en función de la hora del gráfico de visualización del probador?

Si es así, por favor, indíqueme cómo hacerlo. No puedo entenderlo.
PD: el hecho de que utilice la función de Kim para el reemplazo, en lugar de StringReplace - así es como está diseñado, no hagas caso.


Me responderé a mí mismo. Si hago un indicador de este script, funciona correctamente por alguna razón.
Así que se ha encontrado una solución. Aunque un par de clics menos conveniente, pero todavía mejor que nada.
 

indicador - ATS (Alpha Trend Spotter Price Action free)

CandleHigh=High[Highest(NULL, 0,2,3,i)];
CandleLowS=Low[Lowest(NULL,0,1,3,i)];
CandleOpenS=Open[i];
CandleHighF=High[Highest(NULL, 0, 2, 3, (i+3))];
CandleHighL=Low[Lowest(NULL,0,1,3,(i+3))];
CandleOpenL=Open[i+3];
//---
if((CandleHigh>CandleHighF) && (CandleOpenS<CandleHighL))
{
BufferMap1[i]=High[i+3]+0.0010;
}
//---
if((CandleLowS<CandleHighL) && (CandleOpenS>CandleHighF))
{
BufferMap2[i]=Low[i+3]-0.0010;

preguntas:

1. ¿Cuántos candelabros se analizan?
2. ¿Sobre qué candelero está colocada la flecha?
3.
como O1>C2

este es el código para mq5 del mismo indicador

{
CandleHigh=high[ArrayMaximum(high,bar,iPeriod)];
CandleLow=low[ArrayMinimum(low,bar,iPeriod)];
CandleOpen=open[bar];
CandleHigh1=high[ArrayMaximum(high,bar+iPeriod,iPeriod)];
CandleLow1=low[ArrayMinimum(low,bar+iPeriod,iPeriod)];
CandleOpen1=open[bar+iPeriod];
//---
BuyBuffer[bar]=0.0;
SellBuffer[bar]=0.0;
//---
if(CandleLow<CandleLow1 && CandleOpen>CandleHigh1) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8;
if(CandleHigh>CandleHigh1 && CandleOpen<CandleLow1) SellBuffer[bar]=high[bar]+ATR[bar]*3/8; }

Lo entendí como mq5:

bool UP = Low[i+2] < Low[i+1] && Open[i+2] > High[i+1] ;

bool DOWN = High[i+2] > High[i+1] && Open[i+2] < Low[i+1] ;

¿Lo he hecho bien?

==

ATS mq4 https://www.mql5.com/en/code/12941

 
Hola usuarios del foro.
Estoy tratando de integrar una biblioteca para trabajar con archivos fuera de la caja de arena de archivos https://www.mql5.com/ru/code/11140.
Sin embargo, en la etapa inicial, estoy teniendo problemas con la apertura de archivos básicos. Tal vez alguien ha hecho algo basado en esta biblioteca, por favor ayuda. ¡Muchas gracias!
#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string name=StringConcatenate(Year(),TransformToFileName(Month()),TransformToFileName(Day()),".log");
//---
   string path=TerminalPath()+"\\MQL4\\Logs\\"+name;
//---
   if(FileCheckW(path))
     {
      //---
      int handle=-1;
      handle=FileOpenExistingW(path,GENERIC_READ,SHARE_READ);
      if(handle!=NULL)
        {
         Alert(handle);
         FileCloseHandle(handle);

        }
     }
//
  }
//+------------------------------------------------------------------+
string TransformToFileName(int val)
  {
   string res;
//---
   if(val<10)
     {
      res=StringConcatenate(0,val);
     }
   else
     {
      res=StringConcatenate(val);
     }
//---
   return(res);
  }
//+------------------------------------------------------------------+
Error
 
bistreevseh:
Hola usuarios del foro.
Estoy tratando de integrar una biblioteca para trabajar con archivos fuera de la caja de arena de archivos https://www.mql5.com/ru/code/11140.
Sin embargo, en la etapa inicial, estoy teniendo problemas con la apertura de archivos elementales. Tal vez alguien ha hecho algo basado en esta biblioteca, por favor ayuda. ¡Muchas gracias!

Tal vez este sea el problema, ya que

StringConcatenate()

"Nota.

Los parámetros pueden ser de cualquier tipo. El número de parámetros no puede ser inferior a 2 ni superior a 64".

 
bistreevseh:
Hola usuarios del foro.
Estoy tratando de integrar mi biblioteca para trabajar con archivos fuera del sistema de archivos sandbox https://www.mql5.com/ru/code/11140.
En la etapa inicial tengo problemas con la apertura de archivos básicos. Tal vez alguien ha hecho algo basado en esta biblioteca, por favor ayuda. ¡Muchas gracias!

¿Funciona correctamente el script de prueba?

¿Derechos y propietario de la unidad del sistema?

Tengo un script como este:

#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
  string sName = TimeToString(TimeLocal(), TIME_DATE) + ".log";
  sName = StringSubstr(sName, 0, 4) + StringSubstr(sName, 5, 2) + StringSubstr(sName, 8);
  string sPath = TerminalPath() + "\\MQL4\\Logs\\" + sName;
  Print(sPath);
  if (FileCheckW(sPath))
   {
    int hFile = FileOpenExistingW(sPath, GENERIC_READ,SHARE_READ);
    if (hFile != NULL)
     {
      Print("hFile = ", hFile);
      FileCloseHandle(hFile);
     }
    else Print("Файл не открыт!");
   }
  else Print("Файл отсутствует!");
 }

funciona:

0 07:46:55.195 Check_FileLib EURUSD,Daily: inicializado
0 07:46:55.196 Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0 07:46:55.239 Check_FileLib EURUSD,Daily: hFile = 2020
0 07:46:55.240 Check_FileLib EURUSD,Daily: uninit reason 0
0 07:46:55.241 Script Check_FileLib EURUSD,Daily: eliminado

 
Zhunko:

¿Funciona correctamente el script de prueba?

¿Derechos y propietario de la unidad del sistema?

Tengo un script como este:

funciona:

0 07:46:55.195 Check_FileLib EURUSD,Daily: inicializado
0 07:46:55.196 Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0 07:46:55239 Check_FileLib EURUSD,Daily: hFile = 2020
0 07:46:55.240 Check_FileLib EURUSD,Daily: uninit reason 0
0 07:46:55.241 Script Check_FileLib EURUSD,Daily: removed


¡Muchas gracias! Funciona raro tengo derechos de administrador, específicamente le di todas las destrucciones al dueño de la carpeta terminal, eso ayudó, pero luego dejó de funcionar. Luego traté de leer el archivo de registro utilizando el FileReadStrArrayW (si no me equivoco con el nombre) leer las líneas vacías, el script se cuelga en modo ansi. Sólo FileReadCharArr fue capaz de leer los códigos ansi. ¿Tal vez tenga algún ejemplo de cómo analizar el archivo de registro con su biblioteca? Se lo agradecería mucho.
 
No estoy seguro de cómo utilizarlo y no sé cómo resolver este problema. En el indicador se supone que realizar un cálculo comparativo utilizando el ciclo, en tiempo real en los días de mercado el indicador funciona (aunque lentamente), pero hoy me di cuenta de que el cálculo no se lleva a cabo.