Come codificare? - pagina 157

 

grazie wolfe!

grazie per la tua risposta e per il libro! è nuovo per me, quindi lo studierò e imparerò di più. poi posterò la prossima versione del mio ea o un'altra domanda se dovessi incontrare un blocco stradale.

Eric

 

Fissazione temporale di un oggetto

Mi chiedevo se qualcuno potesse dirmi come fissare temporalmente un oggetto (come una freccia) in modo che quando cambio il TF del grafico la freccia rimanga al tempo originale. Simile a disegnare una linea verticale e poi cambiare il TF del grafico. Grazie.

 

come cambiare o rimuovere.00

double HiPrice2 = iHigh(NULL,NULL,1);

double LoPrice2 = iLow (NULL,NULL,1);

double Rangehilo= (HiPrice2-LoPrice2);

if (Digits < 4) Rangehilo = Rangehilo * 100; altrimenti Rangehilo = Rangehilo * 10000;

Comment("\n", "Range: ",DoubleToStr(Rangehilo,2)+" pip","\n");

Provo a creare range PIP tra alto e basso, ma si vede così

->> Range: 37.00 pip

La mia domanda è, come rimuovere .00? Così mostrerà solo 37pip?

grazie

 

NormalizeDouble(var1,0);

Lux

PS: Ho appena notato il tuo codice: DoubleToStr(Rangehilo,0) - cambia il 2 in 0

 
luxinterior:
NormalizeDouble(var1,0);

Lux

PS: Ho appena notato il tuo codice: DoubleToStr(Rangehilo,0) - cambia il 2 in 0

Ohohhh, solo un piccolo errore... grazie luxinterior!

 

aggiunta di bande stdev

Ciao, scusa per la domanda stupida, ma aiutami qui:

Se hai un qualsiasi indicatore che consiste in 1 linea nella finestra del grafico, e vuoi aggiungere le bande di deviazione standard a quella linea, come le bande di Bollinger. Come si fa?

diciamo che il vostro buffer che traccia l'indicatore originale si chiama abc

quindi prima dichiarate queste:

extern int BandsPeriod=20;

extern int BandsShift=0;

extern double BandsDeviations=2.0;

1) si cambia

#proprietà indicator_buffers 1 (1 diventa 3)

2)

SetIndexBuffer(0,abc);

3) SetIndexStyle(0,DRAW_LINE);

e aggiungete

SetIndexBuffer(1,UpperBuffer);

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(2,LowerBuffer);

SetIndexStyle(2,DRAW_LINE);

SetIndexDrawBegin(0,BandsPeriod+BandsShift);

SetIndexDrawBegin(1,BandsPeriod+BandsShift);

3) aggiungi il resto del codice delle bande di bollinger nel ciclo di inizializzazione

int start()

{

int i,k,counted_bars=IndicatorCounted();

doppia deviazione, somma, oldval, newres;

//----

if(Bars<=BandsPeriod) return(0);

//---- zero iniziale

if(counted_bars<1)

e così via....

4) ma come diavolo si fa a sostituire il buffer chiamato MovingBuffer nel codice originale bands.mq4 con il nuovo buffer del tuo indicatore, chiamato "abc"?

Qual è il modo migliore per farlo?

Devo cercare di inserire il codice del mio indicatore nel codice di bands.mq4 o il contrario?

Ho allegato un pezzo di codice ben noto chiamato bands.mq4 in modo da poter vedere con cosa sto lavorando.

di nuovo, scusate per la mia ignoranza in materia di codice

Forse qualcuno conosce un 'tutorial sull'aggiunta di bande stdev'? Questo sarebbe ciò di cui ho bisogno in questo momento. Grazie

File:
bands.mq4  3 kb
 
 

Codifica per un EA

Ciao a tutti,

Vorrei creare un codice che impedisca a un EA di fare trading se ha già avuto un trade redditizio per la sessione di trading corrente.

Ho una serie di EA che ho costruito e che mi permettono di scegliere l'orario di apertura e di chiusura del trading ogni giorno. L'EA inoltre fa qualcosa solo all'apertura di ogni nuova barra. Quindi, se ho un trade in corso e viene chiuso perché ha colpito il mio stop loss o il mio take profit, l'EA aspetterà l'apertura della prossima barra prima di aprire un nuovo trade.

Per esempio, ho l'EA impostato per operare tra le 6:00 AM e le 2:00 PM su un grafico di un'ora. Alle 6:00 AM viene aperto un trade. Alle 9:23, il mio take profit viene colpito e il trade viene chiuso. Alle 10:00 del mattino viene aperta una nuova operazione che rimarrà aperta fino a quando il nuovo stop loss o take profit viene colpito, o il tempo raggiunge le 14:00, a quel punto l'operazione viene chiusa e il trading viene fatto per il resto della giornata.

Quello che vorrei che l'EA facesse non è solo riconoscere l'ora del giorno, ma anche riconoscere se ho già avuto un trade vincente durante la sessione di trading. Così, nell'esempio di cui sopra, anche se è ancora durante il periodo di trading per il giorno, l'EA non aprirebbe un nuovo trade alle 10:00 AM perché un profitto è già stato fatto. D'altra parte, se fosse il mio stop loss ad essere stato colpito nell'esempio precedente, l'EA aprirebbe una nuova operazione alle 10:00 AM perché nessun profitto è stato ancora realizzato.

Sto pensando che dovrei usare la funzione "OrderSelect" insieme al parametro "Mode_History" per guardare i trade precedentemente chiusi e poi confrontare il prezzo di apertura con quello di chiusura dell'ordine per determinare se è stato realizzato un profitto o una perdita. Vi sembra giusto? Essendo un novizio della programmazione, non sono sicuro che questo sia il modo migliore per affrontare il problema e se lo è, mi ci vorrà molto, molto tempo per ottenere il formato corretto per funzionare correttamente.

Se qualcuno potesse aiutarmi o almeno darmi qualche idea su come affrontare questo problema, gliene sarei grato. Se il mio esempio non ha senso, fatemelo sapere e cercherò di spiegarlo meglio.

Grazie in anticipo per qualsiasi aiuto offerto.

Ron

 

Controllo delle perdite d'ordine...

Su questo sito, a questo link https://www.mql5.com/en/forum/176053/page25 c'è una copia del DIN_Kukus_EA_V2.6. Se visualizzi il contenuto dell'EA, troverai una funzione che controlla le perdite degli ordini nella cronologia degli ordini, proprio come hai descritto tu stesso. Puoi usare questo esempio di lavoro su come estrarre il numero di trade di successo dalla cronologia degli ordini. Puoi anche modificarlo per estrarre la cronologia per un particolare periodo di tempo, ma spero che questo ti aiuti a vedere come realizzare quello che ti proponi di fare da solo...

 

voler utilizzare i risultati dell'indicatore nell'EA

Ciao a tutti,

L'indicatore Gliding_Channels mette i dati del canale corrente nell'area di commento della finestra dei dati. Dice la profondità verticale del canale sulla barra corrente, l'angolo del canale (sia positivo che negativo), il limite alto e il limite basso. Voglio vedere questi dati, ma sono in conflitto con i dati che il mio EA mostra nell'area dei commenti, causando lo sfarfallio dei miei commenti.

Ho provato ad aggiungere un SetIndexBuffer per ognuno dei quattro dati nell'indicatore in modo da poterli referenziare nel mio EA usando iCustom. Sono stato in grado di portare solo uno dei quattro valori nei miei commenti EA in questo modo. (Ho anche continuato ad avere il problema dello sfarfallio).

Qualcuno potrebbe per favore mostrarmi il modo corretto per accedere a quei quattro risultati dell'indicatore nel mio EA?

Nel mio EA, chiamerò questi quattro valori "profondità, angolo, limitHI e limitLO".