Come codificare? - pagina 243

 

Aiuto per migliorare l'indicatore ATR!

Sto cercando di codificare una versione migliorata dell'indicatore ATR. Voglio essere in grado di avere l'indicatore ATR ma basato solo sulla candela dalle 2:00 alle 11:00 per un periodo P.

Per esempio: su un grafico orario voglio trovare l'ATR su 120 periodi (+/- 120 ore = 5 giorni) ma solo con le barre tra le 2:00 e le 11:00 del mattino durante queste 120 ore.

Se qualcuno ha un'idea di come modificare il codice ATR standard per fare quello che sto cercando di fare... per favore rispondete a questo post con il vostro codice...

Grazie...

 

Ea

Per favore, quale espressione può essere usata per ottenere il prezzo aperto o alto di una candela che si trova a X barre dalla candela frattale più recente? (per favore, scrivete l'espressione completa... sto chiedendo solo una o due righe)

Grazie

 
ak_marshal:
Pls, quale espressione può essere utilizzata per ottenere il prezzo aperto o alto di una candela che è X barre dalla candela frattale più recente? (scrivete l'espressione completa... sto chiedendo solo una o due righe) Grazie

Prima di tutto dovete controllare qual è l'indice della barra frattale. Per questo dovreste usare il ciclo, potete usare "while" o "for". Io userò for.

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

{

doppio isfractal = codice per leggere i frattali;

if(isfractal != 0)

{

double myOpen = Open;//questo sarà il tuo X dove XBarsAfterFractal è il numero intero - x barre dalla barra frattale.

break;//uscita dal ciclo

}

}

 

Aiuto con uno script molto semplice per favore

Ciao Ragazzi,

Qualcuno può aiutarmi con lo script di CoderGurus qui sotto.

Funziona benissimo così com'è, ma volevo modificarlo in modo che fermi lo stop loss e la presa di profitto in base al prezzo di apertura dell'operazione, non agli attuali prezzi bid e ask.

Come ho detto, funziona bene così com'è, ho pensato che avrei dovuto solo cambiare OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*StopLoss,Bid+Point*TakeProfit,0,Green); a

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point*StopLoss,OrderOpenPrice()+Point*TakeProfit,0,Verde);

ma quando provo ad eseguirlo non succede nulla.

Qualcuno può per favore indicarmi la giusta direzione.

Grazie

Steve

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

//| My_First_Script.mq4

//| Copyright Coders Guru ||

//| https://www.mql5.com/en/forum |

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

#proprietà copyright "Copyright Coders Guru"

#property link "https://www.forex-tsd.com"

#proprietà show_inputs

#include

extern double TakeProfit=250;

extern double StopLoss=35;

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

//| funzione di avvio del programma script |

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

int start()

{

int totale,cnt,err;

doppio stop_loss_value

doppio take_profit_value;

totale = OrdiniTotali();

for(cnt=0;cnt<totale;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY) // la posizione lunga è aperta

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*StopLoss,Bid+Point*TakeProfit,0,Green);

err=GetLastError();

Stampa ("Alto - ");

Stampa("errore(",err,"): ",ErrorDescription(err));

Sleep(1000);

}

if(OrderType()==OP_SELL) // la posizione short è aperta

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*StopLoss,Ask-Point*TakeProfit,0,Red);

err=GetLastError();

Print("error(",err,"): ",ErrorDescription(err));

Sleep(1000);

}

}

return(0);

}

 

Come posso fare la funzione come ciclo

Voglio usare la funzione EA che lavora come loop come questo:

(per ora uso la variabile

tendenza INT)

A >> B >> C >> D >> E

uso A = nuovo massimo + SMA30 > 80

i "comprare" tendenza = 1

poi B = sma30 < 80

i "vendere" tendenza = 2

allora C = sma30>80

i "comprare" tendenza = 3

a C è il punto che voglio controllare

se fa un nuovo massimo in qualsiasi punto voglio che il trend torni ad essere 1 e che vada in loop

se non fa un nuovo massimo andrà a sma30 < 80

e passerà a trend = 4

////////////

Questo è il ciclo che voglio, qualcuno può dirmi la funzione da usare (il mio modo di usare la variabile non la funzione e non so perché)

spero in un saggio consiglio, grazie

 

Non sono riuscito a seguire la tua logica, ma forse questo esempio può essere usato per aiutarti:

MA30=iMA(NULL,0,30,0,0,0,0);

MA80=iMA(NULL,0,80,0,0,0,0);

se(Alto[0]>Alto[1] && MA30>MA80) A=1;

se(MA30<MA80) B=2

se(MA30>MA80) C=3;

Forse puoi lavorare con questo per espanderlo al risultato del tuo ciclo desiderato.

 

impostare la data corrente come extern var?

Ciao a tutti, stavo cercando aiuto per modificare un po' di codice. Il problema è che ogni volta che apro questo particolare EA devo cambiare manualmente l'ora e la data, quello che volevo sapere è se era possibile fare questo aggiornamento automatico ogni volta che l'EA viene aperto?

Per essere più specifici, l'EA apre un acquisto e una vendita in sospeso all'ora e alla data prestabilite, cambiare l'ora non è così male, ma quando si collega l'EA a 5 o 6 grafici può diventare un po' fastidioso, e il copia/incolla non è sufficiente a lungo termine

extern datetime NewsTime = D'05.08.2010 10:15'; è il codice

Qualsiasi aiuto è apprezzato

 

Può essere scrivere uno script, che imposta una variabile globale con una nuova data (GlobalVariableSet), e aggiungere alla lettura EA di questa variabile (GlobalVariableGet)?

 

Qualcuno può modificare il parametro del commento commerciale

Salve,

Ho un EA copiatore di segnali, che copia esattamente il commento commerciale dal Master. Ho bisogno di aggiungere un parametro esterno a questo EA, che può essere impostato su qualsiasi commento commerciale che voglio. Apprezzerei molto se qualcuno mi aiutasse.

Grazie

File:
s-mtfx_s.mq4  27 kb
 
Ale:
Si può scrivere uno script che imposti una variabile globale con una nuova data (GlobalVariableSet), e aggiungere a EA la lettura di questa variabile (GlobalVariableGet)?

grazie, ma ho pensato che il problema è che le variabili esterne come "NewsTime" non accettano altro che una variabile statica

potresti impostarla usando lo script, ma poi non potresti cambiarla?

È corretto?