[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 145
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Grazie per i consigli. Tutto funziona, ma quando si installa l'indicatore è disegnato in modo strano (vedi grafico). L'indentazione (in barre) dal bordo sinistro della finestra del grafico alla linea gialla verticale è sempre INUTILE per QUALSIASI numero di barre visibili nella finestra ed è uguale a otto barre. Una volta che queste otto barre vanno oltre il limite sinistro della finestra, tutte le linee del grafico appaiono immediatamente e poi tutto è normale. Si può risolvere e come?
#property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_color3 Aqua #property indicator_color4 DarkOrange #property indicator_width1 2 #property indicator_width3 2 //--- buffers double Macd1Buffer[]; double Signal1Buffer[]; double Macd2Buffer[]; double Signal2Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Macd1Buffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Signal1Buffer); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,Macd2Buffer); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,Signal2Buffer); IndicatorDigits(Digits); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Comment(""); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { double max1=-0.01,min1=0.01, max2=-0.01,min2=0.01, max_M1=-0.01,min_M1=0.01, max_M2=-0.01,min_M2=0.01, max_S1=-0.01,min_S1=0.01, max_S2=-0.01,min_S2=0.01; int bars_counted=WindowBarsPerChart()-1, limit; limit=bars_counted; //---- macd counted in the 1-st buffer for(int i=0; i<limit; i++) { Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i); Macd2Buffer[i]=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i); max_M1=MathMax(Macd1Buffer[i],max_M1); min_M1=MathMin(Macd1Buffer[i],min_M1); max_M2=MathMax(Macd2Buffer[i],max_M2); min_M2=MathMin(Macd2Buffer[i],min_M2); } for( i=0; i<limit; i++) { Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i); Signal2Buffer[i]=iMAOnArray(Macd2Buffer,Bars,9,0,MODE_SMA,i); max_S1=MathMax(Signal1Buffer[i],max_S1); min_S1=MathMin(Signal1Buffer[i],min_S1); max_S2=MathMax(Signal2Buffer[i],max_S2); min_S2=MathMin(Signal2Buffer[i],min_S2); } max1=MathMax(max_M1,max_S1); min1=MathMin(min_M1,min_S1); //---- done Comment( "\n"," Баров = ",WindowBarsPerChart()-1, "\n"," max_M1 = ",max_M1, "\n"," min_M1 = ",min_M1, "\n"," max_S1 = ",max_S1, "\n"," min_S1 = ",min_S1, "\n"," max_M2 = ",max_M2, "\n"," min_M2 = ",min_M2, "\n"," max_S2 = ",max_S2, "\n"," min_S2 = ",min_S2, "\n"," max1 = ",max1, "\n"," min1 = ",min1, "\n"," max2 = ",max2, "\n"," min2 = ",min2); //---- return(0); } //+------------------------------------------------------------------+Grazie per i consigli. Funziona, ma quando si installa l'indicatore è disegnato in modo strano (vedi grafico). L'indentazione (in barre) dal bordo sinistro della finestra del grafico alla linea gialla verticale è sempre INUTILE per QUALSIASI numero di barre visibili nella finestra ed è uguale a otto barre. Non appena queste otto barre vanno oltre il bordo sinistro della finestra, tutte le linee del grafico appaiono immediatamente e poi tutto è normale. Può essere corretto e come?
prova così
// обработка видимых баров. int bars_count=WindowBarsPerChart(); int bar=WindowFirstVisibleBar(); for(int i=0; i<bars_count; i++,bar--) { // номера баров уменьшаются, так как нумерация идет в обратном порядке. // ... }Questa costruzione di codice permette di ricalcolare ad ogni nuovo tick l'indicatore solo a zero e alla prima (per il controllo) barra, invece di ricalcolare nuovamente l'indicatore già calcolato. ho bisogno di costruire un indicatore da TUTTE le barre visibili nella finestra, e poi trovare il suo max e min a questo punto. aiutatemi a risolvere il problema, menzionato nel mio post precedente. c'è un esempio, ma non tutto è chiaro per me. qualcuno può spiegare queste tre stringhe linea per linea?
Non è molto chiaro cosa ti serve, se hai bisogno di trovare il MAX e il MIN delle barre visibili dell'indicatore, prima disegna l'indicatore e poi cerca.
Forse è meglio usare WindowPriceMax(), WindowPriceMin().
Stepan2
Opere
C'è un problema con gli array dopo tutto, ma con while
c per funziona senza problemi
))
Buon pomeriggio.
Gente, ditemi con cosa testare gli EA. Perché la MT incorporata dà una media del 50% di qualità di simulazione, e la gente sta postando più del 90% sugli screenshot.
Buon pomeriggio.
Gente, ditemi con cosa testare gli EA. Perché la MT incorporata dà una media del 50% di qualità di simulazione, ma sugli screenshot la gente posta più del 90%.
Se avete l'intera cronologia dei minuti, sarà il 90%. Il 99% si ottiene creando una cronologia di tick fxt voi stessi. Questo di solito è fatto usando le citazioni di dukascoping. Gli script di Google sul tema del 99% di test di qualità
Ciao, come implementare una condizione nel codice dell'Expert Advisor per impostare lo stesso tipo di ordini 50 pips dopo l'ultimo ordine