Es extraño que Print dé false a pesar de que la captura de pantalla muestra que AAPL está en la visión general del mercado ps Ya escribí arriba: el punto es correr en un instrumento y obtener datos de otro... si quisiera datos de AAPL habría escrito _Symbol directamente
es extraño que Print dé falso aunque en la captura de pantalla se vea que hay un aapl en la visión general del mercado ps Ya escribí arriba: La idea es ejecutar en un instrumento y obtener los datos de otro. Si quisiera los datos de AAPL de AAPL habría escrito _Symbol
El número de cuenta y la contraseña del inversor son suyos. Pero doy el 99,9% que el símbolo "AAPL" en el servidor de comercio simplemente no existe :)
Al crear un archivo histórico, MT4 tester pone TickValue=0, TickSize=0 en la cabecera y los parámetros relacionados con la comisión, no entiendo qué y dónde? Los valores de los campos de margen también se llenan y luego no - es diferente para los diferentes corredores.
¿Se trata de un error o de una estructura de cabecera incorrecta? La ayuda del sitio lo dice. He comprobado que está anticuado y por eso uso este.
#property strict
#property show_inputs
input string symb="AUDCHF";
#define TOSTRING(A) #A+" = "+(string)(A)
struct TestHistoryHeader
{
intversion; // 405charcopyright[64]; // copyrightchardescription[128]; // server name// 196char symbol[12];
int period;
int model; // for what modeling type was the ticks sequence generatedint bars; // amount of bars in historyint fromdate;
int todate;
int totalTicks;
double modelquality; // modeling quality// 240//---- general parameterschar currency[12]; // currency baseint spread;
int digits;
int unknown1;
double point;
int lot_min; // minimum lot sizeint lot_max; // maximum lot sizeint lot_step;
int stops_level; // stops level valueint gtc_pendings; // instruction to close pending orders at the end of day// 292//---- profit calculation parametersint unknown2;
double contract_size; // contract sizedouble tick_value; // value of one tickdouble tick_size; // size of one tickint profit_mode; // profit calculation mode { PROFIT_CALC_FOREX, PROFIT_CALC_CFD, PROFIT_CALC_FUTURES }// 324 //---- swap calculationint swap_enable; // enable swapint swap_type; // type of swap { SWAP_BY_POINTS, SWAP_BY_DOLLARS, SWAP_BY_INTEREST }int unknown3;
double swap_long;
double swap_short; // swap overnight valueint swap_rollover3days; // three-days swap rollover// 356 //---- margin calculationint leverage; // leverageint free_margin_mode; // free margin calculation mode { MARGIN_DONT_USE, MARGIN_USE_ALL, MARGIN_USE_PROFIT, MARGIN_USE_LOSS }int margin_mode; // margin calculation mode { MARGIN_CALC_FOREX,MARGIN_CALC_CFD,MARGIN_CALC_FUTURES,MARGIN_CALC_CFDINDEX };int margin_stopout; // margin stopout levelint margin_stopout_mode;// stop out check mode { MARGIN_TYPE_PERCENT, MARGIN_TYPE_CURRENCY }double margin_initial; // margin requirementsdouble margin_maintenance; // margin maintenance requirementsdouble margin_hedged; // margin requirements for hedged positionsdouble margin_divider; // margin dividerchar margin_currency[12];// margin currency// 420 //---- commission calculationdouble comm_base; // basic commissionint comm_type; // basic commission type { COMM_TYPE_MONEY, COMM_TYPE_PIPS, COMM_TYPE_PERCENT }int comm_lots; // commission per lot or per deal { COMMISSION_PER_LOT, COMMISSION_PER_DEAL }// 436 //---- for internal useint from_bar; // fromdate bar numberint to_bar; // todate bar numberint start_period[6]; // number of bar at which the smaller period modeling startedint set_from; // begin date from tester settingsint set_to; // end date from tester settings// 476//----int end_of_test;
int freeze_level; // order's freeze level in pointsint generating_errors;
// 488 //----int reserved[60];
};
void OnStart()
{
//---
int dig=(int)MarketInfo(symb,MODE_DIGITS);
TestHistoryHeader header={0};
ResetLastError();
int handle=FileOpen(symb+"1_0.fxt",FILE_READ|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
FileReadStruct(handle,header);
FileClose(handle);
}
else {Print("Ошибка открытия файла ",GetLastError()); return;}
Print(CharArrayToString(header.description));
Print(CharArrayToString(header.margin_currency));
Print(TOSTRING(header.set_from));
Print(TOSTRING((datetime)header.set_to));
Print(TOSTRING((datetime)header.end_of_test));
Print(TOSTRING(header.tick_value)," Должно быть ", TOSTRING(DoubleToStr(NormalizeDouble(SymbolInfoDouble(symb,SYMBOL_TRADE_TICK_VALUE),dig),dig)));
Print(TOSTRING(header.tick_size)," Должно быть ", TOSTRING(DoubleToStr(NormalizeDouble(SymbolInfoDouble(symb,SYMBOL_TRADE_TICK_SIZE),dig),dig)));
Print(TOSTRING(header.comm_base));
Print(TOSTRING(header.comm_type));
Print(TOSTRING(header.comm_lots));
Print(TOSTRING(AccountCurrency()));
}
De vez en cuando hay una reproducción del botón de inicio en el gráfico en MT5, es decir, el gráfico se desplaza arbitrariamente al principio, ¿qué causa esto?
Al crear un archivo histórico, MT4 tester pone TickValue=0, TickSize=0 en la cabecera y los parámetros relacionados con la comisión, no entiendo qué y dónde? Los valores de los campos de margen también se rellenan, luego no - es diferente para los diferentes corredores.
...
Supongo que el problema se debe a este extraño campo:
No hay AAPL en la captura de pantalla. Y no se comprueba el código de retorno de SymbolSelect.
Es extraño que Print dé false a pesar de que la captura de pantalla muestra que AAPL está en la visión general del mercado
ps Ya escribí arriba: el punto es correr en un instrumento y obtener datos de otro... si quisiera datos de AAPL habría escrito _Symbol directamente
es extraño que Print dé falso aunque en la captura de pantalla se vea que hay un aapl en la visión general del mercado
ps Ya escribí arriba: La idea es ejecutar en un instrumento y obtener los datos de otro. Si quisiera los datos de AAPL de AAPL habría escrito _Symbol
El número de cuenta y la contraseña del inversor son suyos. Pero doy el 99,9% que el símbolo "AAPL" en el servidor de comercio simplemente no existe :)
por lo que da error 4305
Así es como aparece el error 4305
No hay ningún símbolo "AAPL" en el servidor de comercio al que se está conectando. En absoluto.
Escriba "Apple" en lugar de "AAPL" como en su revisión de mercado
aaaaaaaaaca )))
se quedó atrapado(((.
perdón)
debe ser porque tengo más de un terminal abierto
Muchas gracias a todos los que han respondido
Al crear un archivo histórico, MT4 tester pone TickValue=0, TickSize=0 en la cabecera y los parámetros relacionados con la comisión, no entiendo qué y dónde? Los valores de los campos de margen también se llenan y luego no - es diferente para los diferentes corredores.
¿Se trata de un error o de una estructura de cabecera incorrecta? La ayuda del sitio lo dice. He comprobado que está anticuado y por eso uso este.
He marcado en amarillo los lugares problemáticos.
Aquí tiene una impresión de la demo de MetaQuotes
Utilice la impresión de Robo-Forex (sufijo ".e")
Ahora nos conectaremos a cualquier corredor.
Aumenta el historial de símbolos.
Ejecute cualquier EA en el probador en M1 (cualquier intervalo de prueba y no es necesario esperar a que se complete).
Después de la prueba, copie el archivo de historialsimb+"1_0.fxt " creado por el probadoren el directorio MQL4/Files de la carpeta del probador
Ejecute el script en cualquier gráfico.
Miramos el registro.
De vez en cuando hay una reproducción del botón de inicio en el gráfico en MT5, es decir, el gráfico se desplaza arbitrariamente al principio, ¿qué causa esto?
De vez en cuando, el botón "Inicio" del gráfico en MT5 se reproduce, es decir, el gráfico se desplaza arbitrariamente al principio, ¿cuál es la causa?
Desenterrar el botón "Home" con un destornillador :)
Al crear un archivo histórico, MT4 tester pone TickValue=0, TickSize=0 en la cabecera y los parámetros relacionados con la comisión, no entiendo qué y dónde? Los valores de los campos de margen también se rellenan, luego no - es diferente para los diferentes corredores.
...
Supongo que el problema se debe a este extraño campo:
No estaba en el original, ¿de dónde salió?