Aiuto per la codifica - pagina 485

 
NWFstudent:
Diciamo che si sta facendo trading sul grafico a 1 ora e si usa un indicatore mtf che visualizza il grafico a 4 ore, allora voglio che l'impostazione sia di usare il prossimo time frame.

Cioè, sto facendo trading sul grafico 1hr e l'indicatore sta usando i dati 4hr, quando cambio il mio time frame a 4hr voglio che l'indicatore passi al timeframe superiore a 4hr, così ora userà i dati giornalieri.

Ho trovato questo thread, ma siccome non sono un codificatore, non sono sicuro di dove incollare il codice o se ha bisogno di qualche modifica per l'indicatore attuale.

Timeframe successivo - MQL4 forum

L'indicatore a cui voglio aggiungere questo è "Traders Dynamic_Cb_ssa norm Index_alerts+arrows new 1.01" dal forum elite

NWFstudent

Puoi vedere in questo come puoi farlo in modo semplice: https: //www.mql5.com/en/forum/181187/page24 (incluso fino a scegliere automaticamente il 3° timeframe superiore)

 

Ciao mladen.

L'ultima volta per un po'.... prometto.

Come ormai saprai, sono un forte fan dell'indicatore ADX.

Lo uso in diversi modi e non inserisco mai un trade contro di esso.

Mi piace anche il principio dell'indicatore delle tre anatre

e ho provato a combinare i due, ma senza successo.

Farò un altro tentativo e poi proverò qualcos'altro:

L'indicatore allegato, per quanto posso vedere, ha solo l'area in cui è menzionato un indicatore - Linee 54,57,60.

Tutto il resto sembra essere legato al time frame.

Ho provato a rimuovere ogni menzione di 'sma & SMA' - & adx & ADX, al suo posto, ma senza fortuna.

È possibile, e se è così (senza rubarti troppo tempo) fammi sapere come.

Avere un grande w/end.

File:
 
Jeeves:
Ciao mladen.

L'ultima volta per un po'.... prometto.

Come ormai saprete, sono un forte fan dell'indicatore ADX.

Lo uso in diversi modi e non entro mai in un trade contro di esso.

Mi piace anche il principio dell'indicatore delle tre anatre

e ho provato a combinare i due, ma senza successo.

Farò un altro tentativo e poi proverò qualcos'altro:

L'indicatore allegato, per quanto posso vedere, ha solo l'area in cui è menzionato un indicatore - Linee 54,57,60.

Tutto il resto sembra essere legato al time frame.

Ho provato a rimuovere ogni menzione di 'sma & SMA' - & adx & ADX, al suo posto, ma senza fortuna.

È possibile, e se è così (senza rubarti troppo tempo) fammi sapere come.

Buon fine settimana.

Jeeves

Non puoi usare adx al posto di sma in quell'indicatore. I valori adx sono in un range di valori completamente diverso e non possono essere confrontati con il Bid come sta facendo quell'indicatore nel codice

 
mladen:
NWFstudent Puoi vedere in questo come puoi farlo in modo semplice: https: //www.mql5.com/en/forum/181187/page24 (incluso fino a scegliere automaticamente il 3° time frame superiore)

Grazie, è stato un semplice copia-incolla

 

Caro,

qualcuno può aiutarmi.

cosa è successo a questo "biglietto non valido per la funzione OrderModify"?

Ma in altri possono scambiarlo.

extern double lots = 0.1;

extern double stopsize = 200;

extern double profsize = 100;

extern double Risk =0.01;

int err;

int ticket;

doppio stop;

doppio prof;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdiniTotali(); i++)

{

se (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

se (OrderSymbol() == Symbol())

TotalOrders++;

}

se (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_SELL, getLots(Risk), Bid, 3, 0, 0, NULL,LimeGreen);

stop=(Bid+stopsize*Point);

prof=(Bid-profsize*Point);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

Comment(" ");

}

 
hock87:
Caro,

qualcuno può aiutarmi.

Cosa è successo a questo "ticket non valido per la funzione OrderModify"?

Ma in altri possono scambiarlo.

Questo significa che il tuo ordine non è stato accettato / eseguito e che la funzione OrderSend() ha restituito -1 come risultato. Controlla sempre se il numero di ticket è > -1 prima di provare a modificare un ordine appena creato

 

Qualche esempio di utilizzo di file semplici (non di storia)?

 
mladen:
xtractalpha Dovrò testarlo per vedere cosa succede. Se trovo qual è il problema, lo posterò qui

Caro Mladen,

Hai qualche aggiornamento sulla mia richiesta?

Buon fine settimana

Grazie in anticipo,

Thierry

 
xtractalpha:
Caro Mladen,

Avete qualche aggiornamento sulla mia richiesta?

Buon fine settimana

Grazie in anticipo,

Thierry

Thierry

Cancella le linee 74 e 137 del tuo codice (stai chiamando la funzione LotsizeCalc() da entrambe le linee e in questo modo stai artificialmente aumentando la dimensione del lotto su ogni singolo tick)

Dopo aver cancellato queste linee dovrebbe funzionare bene

 
mladen:
Thierry

Cancella le linee 74 e 137 del tuo codice (stai chiamando la funzione LotsizeCalc() da entrambe le linee e in questo modo stai artificialmente spingendo in alto la dimensione del lotto su ogni singolo tick)

Dopo aver cancellato queste linee dovrebbe funzionare bene

Grazie per la tua risposta veloce!

Ho cancellato le linee, ma l'EA sta ancora aprendo trade con il lotsize sbagliato.

È davvero strano che l'EA stia ignorando il mio codice Martingale. Perché l'EA sta aprendo solo operazioni con lotsize 0.10 o 0.20.... (vedi l'immagine).

Screenshot di Lightshot

Penso che il problema sia la mia funzione lotsizecalc. Voglio che la funzione moltiplichi il mio lotsize per l'importo della martingala quando perdo un trade.

Il mio martingaleamount è 1.5 e il mio lotsize è 0.10. Questo significa che quando perdo 5 trade di fila i lotti saranno: 0.1, 0.15, 0.22, 0.34, 0.51.

double LotsizeCalc() { if(lastOrderProfit()<0 && tradeNumber <=MaximumTrades) { tradeNumber++; malot=OrderLots()*MartingaleAmount; } else { malot = LotSize; tradeNumber=1; } return(malot); }

Qualcuno potrebbe controllare questo codice?

Grazie in anticipo,

Thierry

Motivazione: