Aiuto per la codifica - pagina 406

 
elfural:
Cari mrtools e mladen

Qualcuno può aiutarmi? Tom Demark Moving Average è un indicatore chiave all'interno della mia strategia, tuttavia, un allarme sarebbe molto utile per quando viene indicato un nuovo ripiano; sarei molto grato se un allarme potesse essere codificato nell'indicatore. In attesa della vostra gentile assistenza.

Molte grazie

Elfural, aggiunto un allarme alla versione che hai postato, e voglio mostrarti una versione corretta da Mladen che potrebbe interessarti da qui: https: //www.mql5.com/en/forum/178551/page2 nel caso in cui abbia aggiunto un allarme anche a quella versione.

 

Ciao ragazzi,

Ho bisogno di aiuto per codificare questo indicatore. Il suo è un grande indicatore anche se ritarda 4-5 candele. Per favore aiutatemi.

grail_indic.ex4

File:
 
mrtools:
Elfural, ho aggiunto un avviso alla versione che hai postato, e voglio mostrarti una versione corretta da Mladen che potrebbe interessarti da qui: https: //www.mql5.com/en/forum/178551/page2 per sicurezza ha aggiunto un avviso anche a quella versione.

Ora fa esattamente quello di cui avevo bisogno.

Grazie mille per il tuo grande aiuto.

 

1 commercio per segnale.Ciao MQL pro-codificatori,

Mi chiedo se qualcuno può aiutarmi. Vorrei implementare "una negoziazione per segnale

nel mio EA. Se l'EA raggiunge il suo obiettivo di profitto, è possibile che l'EA apra

un altro trade nella stessa direzione del trend. Questo potrebbe portare ad un trade perdente perché

il segnale sta per cambiare (vedere gli screenshot allegati).

Quale sarebbe il modo migliore per me di implementare la funzionalità"un trade per segnale"?

Potrei naturalmente aumentare l'obiettivo di profitto per evitare che l'EA apra un altro trade,

ma questo probabilmente non è il modo migliore.

Ho provato a implementare questo ma, il codice si compila e dà un avviso:

" Controllare la precedenza dell'operatore per un possibile errore; usare le parentesi per chiarire la precedenza"

Quale può essere il modo migliore per implementare questa funzione?Grazie in anticipo!

extern int maxshorttrades = 1;

extern int maxlongtrades = 1;

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

//| Logica degli ordini / Indicatori |

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

if(openedOrders<=0)

{

double CCIFilter = iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);

double trendp = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);

//+-----+

//| COMPRARE |

//+-----+

for (i=OrdiniTotali()-1;i>=0; i--)

if(OrderType()==OP_BUY<maxlongtrades) break; // Controlla posizione e longtrades.

{

if(trendc!=trendp)

{

if(trendc==1 && CCIFilter<-80) // codice per comprare

OpenBuy();

return(0);

}

openedOrders++;

}

//+------+

//| VENDERE |

//+------+

for (i=OrdiniTotali()-1;i>=0; i--)

if(OrderType()==OP_SELL<maxshorttrades) break; // // Controlla posizione e shorttrades.

{

if(trendc==-1 && CCIFilter>80) // codice per vendere

{

OpenSell();

return(0);

}

openedOrders++;

}

}

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

//| Chiudi Posizioni |

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

void CheckForClose()

{

RefreshRates();

double CCIFilter_c = iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc_c = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);

double trendp_c = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso) break;

if(OrderMagicNumber()!= MAGIC) continua;

if(OrderSymbol() != s_symbol) continua;

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

//| Chiudi ACQUISTO |

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

if(trendc_c!=trendp_c) // Controlla il trend

{

if(OrderType()==OP_BUY)

{

if(trendc_c==-1 && CCIFilter_c>80) // Filtro SELL e CCI?

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);

se(buyClose==false)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert= StringConcatenate("Chiudi ordine di acquisto - Errore ",ErrorCode,": ",ErrDesc);

if(ShowAlerts == true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lotti: ",OrderLots()," Ticket: ",OrderTicket());

Stampa(ErrLog);

}

break; }

}

}

File:
signal1.jpg  19 kb
 

Ciao!

Qualcuno potrebbe aiutarmi con l'indicatore Linear Price Line? Sto cercando di farne una versione modificata che sottragga l'alto dal basso. Se il basso è maggiore dell'alto o se l'alto è uguale all'openprice e quindi zero (perché non c'è un alto) allora l'output dovrebbe essere un valore negativo (la linea nell'indicatore dovrebbe sparare sotto il livello 0.00) Ora rimane un numero positivo non importa se la parte alta della candela è più grande della parte bassa della candela o no.

Ecco la versione normale e l'indicatore di differenza difettoso.linear_price_bar.zip

linear_price_bartestdiff.mq4

Grazie in anticipo

 
tfi_markets:

1 commercio per segnale.Ciao MQL pro-coders,

mi chiedo se qualcuno può aiutarmi.

Vorrei implementare "un trade per segnale"

nel mio EA.

Se l'EA raggiunge il suo obiettivo di profitto, è possibile che l'EA apra

un'

altra operazione nella stessa direzione del trend

.

Questo potrebbe portare ad un trade in perdita perché

il segnale sta per cambiare (si prega di vedere le schermate allegate).

Quale sarebbe il modo migliore per me di implementare la funzionalità "un trade per segnale"?

Potrei naturalmente aumentare il target di profitto per impedire all'EA di aprire un altro trade,

ma questo non è probabilmente il modo migliore.

Ho provato ad implementare questo ma,

il codice compila e dà un avviso:

" Controllare la precedenza dell'operatore per un possibile errore; usare le parentesi per chiarire la precedenza"

Quale potrebbe essere il modo migliore per implementare questa funzionalità?Grazie in anticipo!

Prova questo :

bool Result;

int openedOrders = 0;

for (i=OrdersTotal()-1; i>=0; i--)

{

Result = OrderSelect(i, SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol() != Symbol()) continue;

if (OrderMagicNumber() != MagicNumber) continue;

openedOrders++;

}

if (openedOrders <= 0)

{ .....

 
mrcodix:
Ciao!

Qualcuno potrebbe aiutarmi con l'indicatore Linear Price Line? Sto cercando di farne una versione modificata che sottragga il massimo dal minimo. Se il basso è maggiore dell'alto o se l'alto è uguale all'openprice e quindi zero (perché non c'è alto) allora l'output dovrebbe essere un valore negativo (la linea nell'indicatore dovrebbe sparare sotto il livello 0.00) Ora rimane un numero positivo non importa se la parte alta della candela è più grande della parte bassa della candela o no.

Ecco la versione normale e l'indicatore di differenza difettoso.linear_price_bar.zip

linear_price_bartestdiff.mq4

Grazie in anticipo

mrcodix

Il basso non può mai essere maggiore dell'alto della stessa barra

 

Sì, ho capito, ma quello che vorrei tracciare nel mio indicatore è la differenza tra HIGH to OPEN e LOW to OPEN. Se il numero assoluto di low to open è maggiore del numero assoluto di high to open allora vorrei che la differenza tra questi 2 sia negativa in modo che sia tracciata sotto la linea dello zero. Quindi come faccio a rendere l'output di (Alto - aperto)-(Basso-aperto) negativo quando il secondo è maggiore del primo.

Cordiali saluti

 

Ora ho provato questo

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

{

BarH = Alta Apertura;

BarL = Low-Open;;

BarC = Close-Open;

se(BarC>0) UpDays += 1;

else if(BarC<0) DownDays +=1;

altrimenti se(BarC==0) NeutralDays +=1;

se (BarL > BarH) ExtMapBuffer7 = 0-(BarH-BarL);

altrimenti se (BarL < BarH) ExtMapBuffer7 =(BarH-BarL);

L'uscita è comunque ancora un numero positivo! per favore aiutatemi.

 
mrcodix:
Sì, ho capito, ma quello che vorrei tracciare nel mio indicatore è la differenza tra HIGH to OPEN e LOW to OPEN. Se il numero assoluto di low to open è maggiore del numero assoluto di high to open allora vorrei che la differenza tra questi 2 fosse negativa in modo da essere tracciata sotto la linea dello zero. Quindi come faccio a rendere l'output di (Alto - aperto)-(Basso-aperto) negativo quando il secondo è maggiore del primo. Cordiali saluti

Non sono sicuro di cosa stai cercando di fare. Forse questo?

Motivazione: