strano così Print dà falso anche se la schermata mostra che AAPL è nella panoramica del mercato ps ho già scritto sopra: il punto è quello di eseguire su uno strumento e ottenere dati da un altro... se volevo i dati di AAPL da AAPL avrei scritto _Symbol direttamente
strano quindi Print dà false anche se nello screenshot si può vedere che c'è un aapl nella panoramica del mercato ps Ho già scritto sopra: l'idea è di eseguire su uno strumento e ottenere i dati da un altro. Se avessi voluto i dati AAPL da AAPL avrei scritto _Symbol
Ilnumero di conto e la password dell'investitore sono da parte vostra. Ma do il 99,9% che il simbolo "AAPL" sul server di trading semplicemente non esiste :)
Quando si crea un file di storia, MT4 tester mette TickValue=0, TickSize=0 nell'intestazione e i parametri relativi alla commissione, non capisco cosa e dove? I valori dei campi di margine sono anche riempiti o meno - è diverso per i diversi broker.
Questo è un bug o può essere la struttura dell'intestazione sbagliata? Lo dice l'aiuto sul sito. Ho scoperto che è superato e quindi uso questo.
#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()));
}
Quando si crea un file di storia, MT4 tester mette TickValue=0, TickSize=0 nell'intestazione e i parametri relativi alla commissione, non capisco cosa e dove? I valori dei campi di margine sono anche compilati, poi no - è diverso per i diversi broker.
...
Credo che il problema sia dovuto a questo strano campo:
Non c'è AAPL nello screenshot. E non si controlla il codice di ritorno di SymbolSelect.
strano così Print dà falso anche se la schermata mostra che AAPL è nella panoramica del mercato
ps ho già scritto sopra: il punto è quello di eseguire su uno strumento e ottenere dati da un altro... se volevo i dati di AAPL da AAPL avrei scritto _Symbol direttamente
strano quindi Print dà false anche se nello screenshot si può vedere che c'è un aapl nella panoramica del mercato
ps Ho già scritto sopra: l'idea è di eseguire su uno strumento e ottenere i dati da un altro. Se avessi voluto i dati AAPL da AAPL avrei scritto _Symbol
Ilnumero di conto e la password dell'investitore sono da parte vostra. Ma do il 99,9% che il simbolo "AAPL" sul server di trading semplicemente non esiste :)
quindi dà errore 4305
Ecco come si presenta l'errore 4305
Non c'è nessun simbolo "AAPL" sul server commerciale a cui ti stai collegando. Niente affatto.
Scrivi "Apple" invece di "AAPL" come nella tua recensione di mercato
aaaaaaaaaca )))
è stato raggiunto((((.
mi scusi)
deve essere perché ho più di un terminale aperto
Grazie mille a tutti quelli che hanno risposto
Quando si crea un file di storia, MT4 tester mette TickValue=0, TickSize=0 nell'intestazione e i parametri relativi alla commissione, non capisco cosa e dove? I valori dei campi di margine sono anche riempiti o meno - è diverso per i diversi broker.
Questo è un bug o può essere la struttura dell'intestazione sbagliata? Lo dice l'aiuto sul sito. Ho scoperto che è superato e quindi uso questo.
Ho segnato in giallo i luoghi problematici.
Ecco una stampa di MetaQuotes Demo
Utilizzare la stampa Robo-Forex (suffisso ".e")
Ora ci connetteremo a qualsiasi broker.
Aumenta la storia dei simboli.
Esegui qualsiasi EA nel tester su M1 (qualsiasi intervallo di test e non c'è bisogno di aspettare il suo completamento).
Dopo il test, copiare il file storicosymb+"1_0.fxt " creato dal testernella directory MQL4/Files dalla cartella del tester
Esegui lo script su qualsiasi grafico.
Guardiamo il registro.
Occasionalmente c'è una riproduzione del pulsante Home sul grafico in MT5, cioè il grafico si sposta arbitrariamente all'inizio - cosa causa questo?
Il pulsante "Home" sul grafico in MT5 occasionalmente si rigioca, cioè il grafico si sposta arbitrariamente all'inizio - cosa ha causato questo?
Scavare il pulsante "Home" con un cacciavite :)
Quando si crea un file di storia, MT4 tester mette TickValue=0, TickSize=0 nell'intestazione e i parametri relativi alla commissione, non capisco cosa e dove? I valori dei campi di margine sono anche compilati, poi no - è diverso per i diversi broker.
...
Credo che il problema sia dovuto a questo strano campo:
Non c'era nell'originale, da dove viene?