Chiedete! - pagina 45

 
majlisb:
Ciao, professionale

Per esempio in un Ea otteniamo un segnale e vogliamo piazzare un ordine BUYSTOP/SellStop all'altezza della barra del segnale,

Dovremmo aspettare l'apertura di una nuova barra per trovare l'altezza della barra del segnale, come possiamo fare questo? (qualsiasi articolo, post, EA, , , )

Grazie

Se si contano 3bars per il segnale ora contare 4bars semplicemente sì? Codersguru ha un bell'articolo su un altro modo nel sito mql4

 

Ho una domanda:

Questo potrebbe richiedere una programmazione aggiuntiva che non può essere fatta su MT. Non sono sicuro. Fondamentalmente, ho un EA che sia backtest che forward test bene in MT con i dati Alpari. Sui datafeed di altri broker, c'è spesso una discrepanza tra i trade. A volte, se un trade viene aperto su Alpari, potrebbe non essere aperto con un altro broker o viceversa. È possibile scrivere un qualche tipo di script che esegua i trade sulla piattaforma del mio broker subito dopo che un trade è stato eseguito sulla piattaforma di Alpari?

Per esempio, ricevo un segnale per comprare 2 lotti di cavo a 1.9450 su Alpari. L'operazione viene eseguita. Lo stesso ordine viene poi inserito sulla piattaforma del mio broker live una frazione di secondo dopo. Quando uno stop o un livello di t/p viene colpito su Alpari e l'operazione viene chiusa, la stessa operazione viene chiusa sulla piattaforma del mio broker live.

Questo non è un sistema di scalping, quindi se c'è una discrepanza di 2 pip tra i due prezzi, non è un grosso problema. Qualcuno sa se questo è possibile, e se sì, come posso fare? Grazie.

 

Aiuto con MTF xpMA

Codersguru,

Puoi per favore controllare le capacità MTF di xpMA?

Molte grazie,

Pippt

Si prega di vedere il post #364 a:

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

 

Quale funzione matematica in mql si usa per arrotondare un valore doppio?

diciamo per esempio, ho 0,69 e voglio che il risultato sia .70. o se il valore è .63 e il risultato sarebbe .60.

Le funzioni mathceiling() e mathfloor() non fanno il trucco.

 

Domanda per principianti

Ciao a tutti...

Grazie a CodersGuru e al suo eccellente corso, sto cercando di imparare MQL4

convertendo un indicatore che ho scritto in MQL3.

Mi sono imbattuto in un intoppo e gradirei un aiuto... se qualcuno potesse dirmi cosa sto sbagliando nel seguente codice.

Il problema è nelle 2 istruzioni If... alla linea 78 e 79

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

//| Primo_Indicatore.mq4

//| Codersguru |

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

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

#proprietà copyright "Codersguru"

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

#proprietà indicator_chart_window

#proprietà indicator_buffers 8

#proprietà indicatore_colore1 Rosso

//---- buffer

doppio ExtMapBuffer1[];

//----------------- Dichiarazioni variabili ----------------------+

int pos=0;

double Pivot_Point = 0;

double new_Pivot_Point =0;

double prev_Pivot_Point=0;

double Pivot_Factor=0;

double LastClose=0;

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

//|Funzione di inizializzazione dell'indicatore personalizzata

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

int init()

{

//---- indicatori

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

SetIndexBuffer(0,ExtMapBuffer1);

stringa short_name = "Pivot Line";

IndicatoreNome_Corto(nome_corto);

return(1);

}

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

//| Funzione di deinizializzazione dell'indicatore Custor

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

int deinit()

{

return(0);

}

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

//| Funzione di iterazione dell'indicatore personalizzata |

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

int start()

{

int counted_bars=IndicatorCounted();

//---- controllare eventuali errori

if (counted_bars<0) return(-1);

//---- l'ultima barra contata sarà ricontata

se (counted_bars>0) counted_bars--;

int cnt=Bars-counted_bars;

//---- ciclo di calcolo principale

while(cnt >= 0)

{

LastClose = Close[cnt];

Se (LastClose > Pivot_Point) //Linea 78

If(new_Pivot_Point > prev_Pivot_Point) //Linea 79

{

prev_Pivot_Point = new_Pivot_Point;

Pivot_Point = new_Pivot_Point;

}

ExtMapBuffer1[cnt]= Pivot_Point ;

cnt--;

}

return(0);

}

Questi sono i messaggi del compilatore -

---------------------------------------------------------------

'If' - la funzione non è definita .....(78,10)

'If' - punto e virgola previsto .....(79,13)

'If' - la funzione non è definita ...(79, 13)

'{' - punto e virgola previsto ....(80, 13)

----------------------------------------------------------------

Non importa cosa faccio, non riesco a capire qual è il problema... So che è molto semplice, ma mi sta sfuggendo...

Grazie a tutti coloro che possono aiutare in questa domanda di base....

Capo

P.S. Felice, sano e prospero anno nuovo a TUTTI

 

MQL è sensibile alle maiuscole: usate "if" invece di "If".

 

WOW... che era Fast....

GRAZIE mille per la risposta veloce... risolto...

la tua risposta è molto apprezzata... ti auguro un grande anno nuovo...

Capo

 

MathRound

BluePearl:
Che funzione matematica in mql si usa per arrotondare un valore doppio?

diciamo per esempio, ho 0.69 e voglio che il risultato sia .70. o se il valore è .63 e il risultato sarebbe .60.

le funzioni mathceiling() e mathfloor() non fanno il trucco.

C'è "MathRound(double x)" che arrotonda un valore al numero intero più vicino; lo stesso di "MathFloor(x+0.5)", suppongo. Per ottenere l'arrotondamento a un decimale puoi usare un'espressione decimale shift/unshift come "MathRound(x*10)/10".

 

Come posso aggiungere delle frecce all'allegato per mostrare su e giù alla croce?

File:
mtf_cross.mq4  5 kb
 

Istogramma

Bene, ecco un'altra domanda mentre continuo ad imparare come convertire da MQL3 a MQL4....

Vorrei dipingere una sezione del grafico che si trova tra due linee, superiore e inferiore. Non so se c'è qualche funzione per dipingere una sezione dello schermo o no, così ho deciso di provare ad usare "Draw_Histogram" nell'istruzione SetIndexStyle(). Ma non capisco bene come funziona. Quando lo uso, non succede niente.

ex:

SetIndexStyle(7,DRAW_HISTOGRAM,0,1);

ExtMapBuffer8[cnt]= (Pivot_Point-(Short_Line*Point));

Print("Cnt = ",cnt," Histo = ",ExtMapBuffer8[cnt]," Calc = ",(Pivot_Point+(Short_Line*Point));

L'output nel diario produce il corretto cnt, il corretto calc ma il valore Histo è zero.

Ho esaminato il codice nell'indicatore MACD, senza successo, e nell'indicatore Heiken-Ashi, e non riesco a capire come funziona. L'indicatore Heiken-Ashi sembra utilizzare 4 buffer per creare ogni candela, ma non ne sono certo.

Il MACD sembra usare una linea di base di zero, da cui viene disegnata la barra dell'istogramma, c'è una linea di base da cui parte? Se sì, come si fa a stabilirla?

Qualcuno potrebbe spiegarmi come funziona questa funzione, in modo che io possa imparare a codificarla correttamente. Se c'è una funzione che dipinge una specifica sezione dello schermo, apprezzerei qualsiasi informazione anche su questo.

Grazie a tutti per la vostra gentile assistenza....

Cordialmente,

Capo

Motivazione: