Aiuto per la codifica - pagina 389

 
triip:
Ho trovato un bel sistema di scalping e un modello, ma funziona così lentamente dopo aver installato questo sistema. Forse qualcuno è in grado di guardarlo e individuare la causa.

Modello e indicatori:

1m_alf_scalp.zip

Sembra che l'indicatore del colore delle candele (IT_Candles) sia il problema. Qualcuno capisce cosa c'è di sbagliato in quel codice che MT4 gira lentamente?

//+------------------------------------------------------------------+//| IT_Candles.mq4

//+------------------------------------------------------------------+

#property indicator_chart_window

#include

#property indicator_buffers 2

extern color UpColor = LimeGreen;

extern color DnColor = Red;

extern int Width = 5;

extern double alpha = 0.09;

double ev=EMPTY_VALUE,Trend,Trigger,ALF;

double Up[];

double Dn[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);

SetIndexBuffer(0,Up);

SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);

SetIndexBuffer(1,Dn);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- check for possible errors

if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

Up = ev;

Dn = ev;

Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);

Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);

ALF = iCustom(NULL,0,"ALF",0,i+1);

if (Trigger > Trend && Close > Open && Close > ALF)

{

Up = MathMax(Open,Close);

Dn = MathMin(Open,Close);

}

if (Trigger < Trend && Close < Open && Close < ALF)

{

Dn = MathMax(Open,Close);

Up = MathMin(Open,Close);

}

}

}

 
triip:
Sembra che l'indicatore del colore delle candele (IT_Candles) sia il problema. Qualcuno capisce cosa c'è di sbagliato in quel codice per cui MT4 gira lentamente?
//+------------------------------------------------------------------+//| IT_Candles.mq4

//+------------------------------------------------------------------+

#property indicator_chart_window

#include

#property indicator_buffers 2

extern color UpColor = LimeGreen;

extern color DnColor = Red;

extern int Width = 5;

extern double alpha = 0.09;

double ev=EMPTY_VALUE,Trend,Trigger,ALF;

double Up[];

double Dn[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);

SetIndexBuffer(0,Up);

SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);

SetIndexBuffer(1,Dn);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- check for possible errors

if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

Up = ev;

Dn = ev;

Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);

Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);

ALF = iCustom(NULL,0,"ALF",0,i+1);

if (Trigger > Trend && Close > Open && Close > ALF)

{

Up = MathMax(Open,Close);

Dn = MathMin(Open,Close);

}

if (Trigger < Trend && Close < Open && Close < ALF)

{

Dn = MathMax(Open,Close);

Up = MathMin(Open,Close);

}

}

}

triip

Controlla se hai anche gli indicatori "Instant_Trendline" e "ALF" nella cartella degli indicatori (entrambi sono necessari perché l'indicatore funzioni correttamente). Se non li hai, estrai i file ex4 da quell'archivio zip e l'indicatore funzionerà bene (se non li hai lì, sarà molto lento)

File:
it.gif  75 kb
 
mladen:
triip Controlla se hai anche gli indicatori "Instant_Trendline" e "ALF" nella cartella degli indicatori (entrambi sono necessari perché l'indicatore funzioni correttamente). Se non li hai, estrai i file ex4 da quell'archivio zip e l'indicatore funzionerà bene (se non li hai lì, sarà molto lento)

Sì, ho messo anche gli altri indicatori sul grafico, ma appena aggiungo IT_Candles, MT4 rallenta, specialmente il cambio di timeframes rallenta...

 
triip:
Sì, ho messo anche gli altri indicatori sul grafico, ma appena aggiungo IT_Candles, MT4 rallenta, specialmente il cambio di timeframes rallenta...

triip

Non è necessario che siano sul grafico. Ma devono esistere (con quei nomi esatti) nella cartella degli indicatori. Il modo più semplice per controllare è andare nella scheda esperti del terminale e vedere se c'è qualche errore (come quello nella foto)

File:
error_2.gif  98 kb
 
mladen:
triip Non è necessario che siano sul grafico. Ma devono esistere (con quei nomi esatti) nella cartella degli indicatori. Il modo più semplice per controllare è quello di andare nella scheda esperti del terminale e vedere se c'è qualche errore lì (come quello nella foto)

Non ci sono errori.

Ma ho notato che ALF.ex4 non rallenta molto, ma ALF-MTF.ex4 rallenta totalmente. Ho una sottocartella nella cartella degli indicatori, dove stanno tutti gli indicatori menzionati. Forse dovrei reinstallare MT4 pulito.

File:
errors.png  27 kb
 
triip:
Nessun errore lì.

Ma ho notato che ALF.ex4 non rallenta molto, ma ALF-MTF.ex4 rallenta totalmente. Ho una sottocartella nella cartella degli indicatori, dove stanno tutti gli indicatori menzionati. Forse dovrei reinstallare MT4 pulito.

Spostarli dalla sottocartella alla cartella principale degli indicatori e provare allora

 
mladen:
Spostali dalla sottocartella alla cartella principale degli indicatori e prova allora

Molto meglio, funziona a meraviglia Grazie mladen!!!

 
sunshineh:
Ciao,

Ho sempre problemi con la scrittura di oggetti di testo sopra le barre del mio grafico.

Per esempio

ObjectCreate ("Xh", OBJ_TEXT,0,Time[0],High[0]+1*pips2dbl);

ObjectSetText("Xh","1",10,"Tahoma",Orange);

ObjectCreate ("X", OBJ_TEXT,0,Time[0],Low[0]-1*pips2dbl);

ObjectSetText("Xl","1",10,"Tahoma",Orange);

Questo funziona bene con gli oggetti di testo sotto le mie barre perché il mio oggetto font è fisso "in testa" al mio testo.

Ma se voglio scrivere del testo sopra la barra, non so come i miei pip il mio testo in dimensione di carattere 10 è un così è scritto nelle barre.

C'è anche un problema quando scrivo il mio testo in timeframe più grandi per esempio "H1", "D1" oder "W1" perché lì ho dovuto cambiare il mio font-distance al valore alto o basso, anche.

So che posso ruotare il mio testo a 90° ma non voglio farlo.

Allora, conosci una soluzione per questo problema?

Per iniziare prova ad usare ATR invece di 1*pips2dbl (in questo modo si adatterà a diversi time frame e simboli).

Prova anche a regolare il punto di ancoraggio (OBJPROP_ANCHOR) del testo su ANCHOR_LOWER per l'oggetto testo che viene visualizzato sopra il massimo

 
madopter:
Le parti regolabili dovrebbero essere la dimensione del lotto e il saldo del conto a cui il lotto viene applicato. Per esempio, i parametri potrebbero essere A = 0,01, B = 5000$, oppure A = 1,00, B = 10000$.

In questo caso devi avere più valori di parametri utilizzabili per il confronto

Puoi definire i parametri come: extern double accountBalanceA = 5000; e poi usare quei parametri nel confronto in quel codice che ha fatto la stessa cosa senza parametri

 
mladen:
jbozman

l'indicatore macd non ha bisogno di alcuna modifica (calcolerà solo 1 o 2 barre nel 99,99% dei casi)

L'indicatore hilo cerca i valori in modo molto complicato. Meglio usare qualche altro indicatore che fa quel compito in un modo molto più semplice (non c'è bisogno di renderlo così complicato)

Ciao mladen. Ho cercato e non sono riuscito a trovare un high/low che avesse giorno precedente, settimana e mese tutto in uno che dipingesse semplici segmenti di linea e non facesse un casino di grafico.

So che hai detto di provare a trovarne un altro; tuttavia, ho cercato davvero e non sono stato in grado. Ho anche postato una richiesta sul forum di mql4. Non ho avuto risposta.

Molto semplicemente, sarei disposto a pagare qualcuno (tu) per modificare questo indicatore.

Vorrei aggiungere il "Numero di giorni", dato che questo traccia ogni giorno precedente. Su EUR/USD e GBP/USD, la mia storia del grafico risale al 1996 o più, quindi occupa troppa memoria con tutte queste linee.

Se non sei in affitto (forse qualcun altro lo sarebbe?), è troppo complicato aggiungere semplicemente Numero di giorni a questo attuale? Posso continuare ad usarlo finché non ne trovo un altro o non trovo qualcuno che lo modifichi. Se è una richiesta che richiede tempo, capisco perfettamente e ti ringrazio per il tuo aiuto su tutto.

jbozman

File: