estranho então Imprimir dá falso embora a imagem do ecrã mostre que a AAPL está na visão geral do mercado ps Já escrevi acima: o objectivo é correr num instrumento e obter dados de outro... se eu quisesse dados da AAPL teria escrito directamente _Symbol
estranho, então Imprimir dá falso mesmo que na imagem do ecrã se possa ver que existe um aapl na visão geral do mercado ps Já escrevi acima: A ideia é correr num instrumento e obter os dados de outro. Se eu quisesse dados AAPL da AAPL teria escrito _Symbol
O número de conta e a palavra-passe do investidor são da sua autoria. Mas dou 99,9% que o símbolo "AAPL" no servidor comercial simplesmente não existe :)
Ao criar um ficheiro de histórico, o testador MT4 coloca TickValue=0, TickSize=0 no cabeçalho e os parâmetros relacionados com a comissão, não percebo o quê e onde? Os valores dos campos de margem também são preenchidos e não - é diferente para corretores diferentes.
Isto é um bug ou pode ser a estrutura de cabeçalho errada? A ajuda no site assim o diz. Descobri que está desactualizado e por isso 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()));
}
Ao criar um ficheiro de histórico, o testador MT4 coloca TickValue=0, TickSize=0 no cabeçalho e os parâmetros relacionados com a comissão, não percebo o quê e onde? Os valores dos campos de margem também são preenchidos, então não - é diferente para corretores diferentes.
...
Acho que o problema é devido a este estranho campo:
Não há AAPL na imagem do ecrã. E não se verifica o código de retorno SymbolSelect.
estranho então Imprimir dá falso embora a imagem do ecrã mostre que a AAPL está na visão geral do mercado
ps Já escrevi acima: o objectivo é correr num instrumento e obter dados de outro... se eu quisesse dados da AAPL teria escrito directamente _Symbol
estranho, então Imprimir dá falso mesmo que na imagem do ecrã se possa ver que existe um aapl na visão geral do mercado
ps Já escrevi acima: A ideia é correr num instrumento e obter os dados de outro. Se eu quisesse dados AAPL da AAPL teria escrito _Symbol
O número de conta e a palavra-passe do investidor são da sua autoria. Mas dou 99,9% que o símbolo "AAPL" no servidor comercial simplesmente não existe :)
por isso dá erro 4305
É assim que surge o erro 4305
Não existe nenhum símbolo "AAPL" no servidor comercial a que se está a ligar. De modo algum.
Escreva "Apple" em vez de "AAPL" como na sua análise do mercado
aaaaaaaaaaca )))
foi apanhado(((.
Desculpe-me)
deve ser porque tenho mais do que um terminal aberto
Muito obrigado a todos os que responderam
Ao criar um ficheiro de histórico, o testador MT4 coloca TickValue=0, TickSize=0 no cabeçalho e os parâmetros relacionados com a comissão, não percebo o quê e onde? Os valores dos campos de margem também são preenchidos e não - é diferente para corretores diferentes.
Isto é um bug ou pode ser a estrutura de cabeçalho errada? A ajuda no site assim o diz. Descobri que está desactualizado e por isso uso este.
Marquei lugares problemáticos a amarelo.
Aqui está uma impressão da Demo MetaQuotes
Utilizar impressão Robo-Forex (sufixo ".e")
Agora vamos ligar-nos a qualquer corretor.
Aumentar o histórico do símbolo.
Executar qualquer EA no testador no M1 (qualquer intervalo de teste e não há necessidade de esperar pela sua conclusão).
Após o teste, copiar o ficheiro de histórico dosymb+"1_0.fxt " criado pelo testadorpara o directório MQL4/Files a partir da pasta do testador
Executar o guião em qualquer gráfico.
Olhamos para o diário de bordo.
Ocasionalmente há uma reprodução do botão Home no gráfico em MT5, ou seja, o gráfico muda arbitrariamente para o início - o que causa isto?
Ocasionalmente o botão "Home" no gráfico em MT5 é reproduzido, ou seja, o gráfico muda arbitrariamente para o início - o que causou isto?
Desenterrar o botão "Home" com uma chave de fendas :)
Ao criar um ficheiro de histórico, o testador MT4 coloca TickValue=0, TickSize=0 no cabeçalho e os parâmetros relacionados com a comissão, não percebo o quê e onde? Os valores dos campos de margem também são preenchidos, então não - é diferente para corretores diferentes.
...
Acho que o problema é devido a este estranho campo:
Não estava lá no original, de onde veio?