C'è stato un annuncio preliminare dei cambiamenti previsti . La lista finale dei cambiamenti nella prossima build sarà pubblicata dopo il rilascio della build stessa.
Rosh: C'è stato un annuncio preliminare dei cambiamenti previsti . La lista finale dei cambiamenti nella prossima build sarà pubblicata dopo il rilascio della build stessa.
Ho rosicchiato a lungo e duramente il codice dell'indicatore, fino a che non ho assolutamente disperato di catturare gli errori. Non l'ho scritto in "Dummies" perché sospetto non errori fatti da me, ma errori nel lavoro del terminale.
Lo scopo dell'indicatore è quello di posizionare i frattali sul timeframe corrente da un altro timeframe e aggiungerne di nuovi man mano che le nuove barre frattali appaiono. Per favore non suggerite altri metodi per disporre le frecce frattali, non si tratta di questo; le domande qui sono fondamentali, e si riferiscono a questo codice e, forse, sono legate al funzionamento errato del terminale. Ho preso un esempio dalla Guida di iFractals che è stato logicamente accorciato della metà (ai soli frattali superiori) per una più facile percezione e un po' di codice dal Fractals.mq5 standard è stato preso in prestito. Ho dovuto essere molto meticoloso per evitare qualsiasi malinteso: ho legato quasi tutti gli array possibili e pulito gli array lavorati, liberato l'handle dell'indicatore chiamato, il che non ha dato alcuna differenza evidente nei risultati. Sono stati notati i seguenti problemi e peculiarità nel funzionamento:
Quando avvio il terminale per la prima volta, apro una nuova finestra del grafico e applico un indicatore appena compilato, tutti i frattali si accumulano sulla barra zero alla fine della storia (solo uno sembra essere posizionato), invece di essere posizionati come previsto e secondo la logica del codice. Il posizionamento corretto può essere avviato solo saltando ad altri timeframes (a volte nemmeno la prima volta). Inoltre, quando si cancella l'indicatore dal grafico, si chiude la finestra del grafico, si ricompila, si apre una nuova finestra e si applica l'indicatore, quasi sempre si riesce a ottenere immediatamente la disposizione frattale richiesta. Per vedere l'effetto errato, il terminale deve essere completamente scaricato e tutti i passi del passo 1 devono essere ripetuti. 1. Forse il problema risiede nella durata dell'handle dell'indicatore chiamato e nel suo comportamento specifico all'avvio iniziale dell'indicatore personalizzato? Nel caso di una disposizione errata dei frattali (quando sono tutti "compressi" sulla barra zero), l'output di tutti gli elementi di exact_extremum nel ciclo dà risultati nulli, ma l'output dei valori adiacenti di TimeUpBuffer, sulla base dei quali viene calcolato e riempito, mostra sempre date temporali coerentemente diverse. Da qui la domanda: cosa impedisce che si riempia durante la creazione iniziale dell'indicatore, se si riempie correttamente con i valori corretti durante le volte successive?
Lo stesso codice che ha ereditato lo stesso problema, ma ora l'enfasi è su una caratteristica completamente diversa. In questo indicatore, possiamo evitare di legare alcune matrici intermedie calcolate come INDICATOR_CALCULATIONS ai buffer dell'indicatore. Questo è il codice iniziale dell'indicatore. Tutto sembra essere a posto, a parte p. 1. sembra essere ok.
Ma per essere molto intelligenti, proviamo a seguire le migliori raccomandazioni e a collegare gli array per i calcoli intermedi ai buffer degli indicatori:
compilare ed eseguire. Come risultato otterremo un messaggio di errore nei log di Terminal Expert Advisor: 2011.11.11 07:42:03 (AUDUSD,H1) Schieramento fuori portata, linea:
#define NUMBER 1#property indicator_chart_window#property indicator_buffers NUMBER+2#property indicator_plots NUMBER
Che sia corretto o meno, ma funziona incomprensibilmente!
Ho una richiesta agli abitanti di noosphere e soprattutto agli sviluppatori: potreste spiegare ogni voce e consigliare come eseguire il debug del codice dell'indicatore (se non cambierò la sua implementazione).
Grazie e file allegati.
P.S.: Nei nomi dei file c'erano le parentesi, ma dopo il caricamento si sono rovinate.
questo codice restituisce i profitti su operazioni chiuse e ne ho bisogno su operazioni aperte
#include <Trade\Trade.mqh>
CTrade trade;
voidOnTick()
{
double profit=0;
if(PositionSelect(Symbol()))profit=PositionGetDouble(POSITION_PROFIT);
if(profit==0) trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,0.1,SymbolInfoDouble(Symbol(),SYMBOL_ASK),0,0,"");
if(profit>1) trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,0.1,SymbolInfoDouble(Symbol(),SYMBOL_ASK),0,0,"");
double ld_return=0;
HistorySelect(0,TimeTradeServer());
for(int i=HistoryDealsTotal()-1;i>=0;i--) // По всем сделкам от конца к началу
{
ulong ticket=HistoryDealGetTicket(i); // Определение тикета сделки и ее выделениеif(ticket!=0)
{
if(HistoryDealGetInteger(ticket,DEAL_TYPE)<2)
ld_return+=HistoryDealGetDouble(ticket,DEAL_PROFIT);
}
}
Comment(ld_return);
}
Buon pomeriggio, ho iniziato a scrivere multivariante, chiamo iMA, per qualche motivo nel commercio reale tutto funziona bene, non appena ho eseguito nel tester un esperto errore rimosso perché l'indicatore 'Moving Average' non può caricare [4804], qual è l'indicatore sull'indicatore, non molto chiaro, non ho potuto trovare una risposta plausibile su Internet. Per favore, consigliatemi, ve ne sarei molto grato.
Qual è la causa di questo problema? Non può usare le risorse del cloud.
Spiegare.
C'è stato un annuncio preliminare dei cambiamenti previsti . La lista finale dei cambiamenti nella prossima build sarà pubblicata dopo il rilascio della build stessa.
Ho rosicchiato a lungo e duramente il codice dell'indicatore, fino a che non ho assolutamente disperato di catturare gli errori. Non l'ho scritto in "Dummies" perché sospetto non errori fatti da me, ma errori nel lavoro del terminale.
Lo scopo dell'indicatore è quello di posizionare i frattali sul timeframe corrente da un altro timeframe e aggiungerne di nuovi man mano che le nuove barre frattali appaiono. Per favore non suggerite altri metodi per disporre le frecce frattali, non si tratta di questo; le domande qui sono fondamentali, e si riferiscono a questo codice e, forse, sono legate al funzionamento errato del terminale. Ho preso un esempio dalla Guida di iFractals che è stato logicamente accorciato della metà (ai soli frattali superiori) per una più facile percezione e un po' di codice dal Fractals.mq5 standard è stato preso in prestito. Ho dovuto essere molto meticoloso per evitare qualsiasi malinteso: ho legato quasi tutti gli array possibili e pulito gli array lavorati, liberato l'handle dell'indicatore chiamato, il che non ha dato alcuna differenza evidente nei risultati. Sono stati notati i seguenti problemi e peculiarità nel funzionamento:
Ho una richiesta agli abitanti di noosphere e soprattutto agli sviluppatori: potreste spiegare ogni voce e consigliare come eseguire il debug del codice dell'indicatore (se non cambierò la sua implementazione).
Grazie e file allegati.
P.S.: Nei nomi dei file c'erano le parentesi, ma dopo il caricamento si sono rovinate.
Come posso determinare il profitto attuale su un trade magico?
questo codice restituisce i profitti su operazioni chiuse e ne ho bisogno su operazioni aperte
Come faccio a sapere perché l'inizializzazione fallisce?
Azzero gli errori prima dell'inizio dell'inizializzazione con
ResetLastError();
Alla fine dell'inizializzazione vedo un errore
Print("Ошибка " + IntegerToString(GetLastError()));
Finisco per entrare nella scheda Expert Advisors
2011.11.11 08:47:51 SimpleExpert (EURUSD,H1) Errore 0
Nella scheda "Diario"
2011.11.11 08:47:51 Esperti di inizializzazione di SimpleExpert (EURUSD,H1) fallito
Come faccio a sapere perché l'inizializzazione fallisce?
Prima di iniziare l'inizializzazione ho resettato gli errori con la funzione
ResetLastError();
Alla fine visualizzo un errore
Print("Ошибка " + IntegerToString(GetLastError()));
Ottengo il seguente risultato nella scheda Esperti
2011.11.11 08:47:51 SimpleExpert (EURUSD,H1) Errore 0
Nella scheda "Diario"
2011.11.11 08:47:51 Esperti di inizializzazione di SimpleExpert (EURUSD,H1) fallito
OnInit restituisce 0 o non 0?
OnInit restituisce true, in qualche modo mi è sfuggito.
Grazie, va bene così.
Come posso determinare il profitto attuale su un trade magico?
Questo codice restituisce i profitti sui trade chiusi, ma ne ho bisogno su quelli aperti