Aiuto per la codifica - pagina 13

 

rapida modifica EA

Ciao,

Ho bisogno di aiuto, ho provato a modificare il codice qui sotto ma l'EA continua a mandare in crash MT4.

Voglio che l'ordine si chiuda quando la barra corrente (quindi la barra dove è stato eseguito l'ordine) si chiude. Fondamentalmente commercio una barra.

Questo è il codice originale, fa trading da segnale a segnale.

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

//| Signal Begin(Exit Buy) |

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

if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;

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

//| Signal End(Exit Buy) |

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

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop) {

if(OrderStopLoss() < Bid - Point * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

} else {

//Close

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

//| Signal Begin(Exit Sell) |

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

if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;

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

//| Signal End(Exit Sell) |

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

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

}

}

}

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

//| Signal Begin(Entry) |

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

//if (timeprev!=Time[0]){

// timeprev = Time[0];

if (signalup!=EMPTY_VALUE&&signalup!=0)

{

Order = SIGNAL_BUY;

}

if (signaldown!=EMPTY_VALUE&&signaldown!=0){

Order = SIGNAL_SELL;

}

// }

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

//| Signal End |

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

//Buy

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Sell

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("SELL order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

} else {

Print("Error opening SELL order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

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

Qualcuno può aiutarmi?

 

Aiuto per favore!!!!!

Ho bisogno di un ea che faccia quanto segue

ad una certa ora imposta 4pc ordine di acquisto o di vendita

funzioni:

order open time (variabile 00-24)

ordine1 vendere o comprare lotto (0.01 .0,02... 1) TP (+ xx pips da oppen) SL (- xx pips da open)

order2 vendere o comprare lotto (0.01 .0,02... 1) TP (+ xx pips da oppen) SL (- xx pips da open)

order3 vendere o comprare lotto (0.01 .0,02... 1) TP (+ xx pips da oppen) SL (- xx pips da open)

order4 vendere o comprare lotto (0.01 .0,02... 1) TP (+ xx pips da oppen) SL (- xx pips da open)

GRAZIE

 

Ho bisogno di aggiungere al mio EA un codice per disabilitarlo a certi livelli di prezzo

Salve,

Ho bisogno di aggiungere al mio Ea un codice per disabilitarlo e abilitarlo a certi livelli di prezzo.

Ho cercato e trovato che posso farlo con

# iclude<WinUser32mqh

extern bool Disable Ea = true // da X (examply1.4420) a Y(examply1.4380) e da Z (examply1.4480) a N(examply1.4520) //

extern bool Enable Ea = true // da R(examply -1.4420) a T(examply -1.4480)

Apprezzerei un aiuto per tradurre queste condizioni in un codice, così nella finestra di dialogo dell'EA potrei semplicemente inserire il livello di prezzo per disabilitare/abilitare l'EA.

 

Dopo un po' di ricerche e studi ho scoperto che scrivendo nella funzione di avvio dell'EA un codice lo avrebbe fatto partire a certe condizioni.

Così sotto la funzione di avvio dell'esperto ho scritto quanto segue:

if(PRICE_MEDIAN (SellLevel-Point*BufferPips))

ritorno (0)

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

BufferPips l'ho aggiunto nel doppio esterno così nella finestra di dialogo potrei cambiare il suo valore.

Non sono se PRICE_MEDIAN è una buona scelta.

Sto ottenendo un errore di compilazione - parentesi sinistra sbilanciata.

Aiuto apprezzato

 

aiutami a fare auto trading

Ciao, Mr. Guru!

Ho l'auto trading ma non funziona, per favore aiutami!

File:
auto_me.mq4  4 kb
 

Ciao Mario,

Penso che questa condizione if(current_shortEma == current_longEma)

non sia mai vera. di solito per rilevare un cross devi fare così

if(current_shortEma > current_longEma && last_shortEma < last_longEma){

//cross dal basso

}

if(current_shortEma last_longEma){

//cross dall'alto

}

Informazioni più dettagliate qui:

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

Grazie

MIkhail

 

Ho anche una richiesta di codifica ---- bisogno di un codificatore (compito molto semplice)

Sappiamo HA - henki ashi raramente essere sbagliato

durante il consolidamento, o quasi U-turn, sarebbe sempre più breve

mentre quando la tendenza è ancora forte, HA per quella barra sarà LUNGA

QUINDI

sarebbe Neat se abbiamo un indicatore che ci dicono la forza di tendenza

l'idea è semplice

--- prima, dovrebbe essere qualsiasi HA farà (allego il mio ex4 solo, ma devono trovare un MQ4 - per HA) e modificarlo (compito semplice presumo)

c'è solo 2 colori per HA, uno blu * su ---- + ---- e uno rosa/viola * giù

-- secondo, quando l'HA deve disegnare le cose dell'HA nel grafico, c'è LENGTH -- lunghezza dell'HA

--- terzo, quando si avvicina all'inversione a U, la barra HA diventerà sempre più corta

supponiamo, quando la LUNGHEZZA della barra HA (per tentativi ed errori) più corta di 0,4 cm, allora la disegniamo NERA (cioè non blu / rosa)

ci avvertirà di NON ENTRARE e di uscire presto

In questo modo, dobbiamo solo entrare (senza paura) secondo la forza del trend HA --- proprio come la mia altra idea, molto SEMPLICE, estremamente utile

coder -- per favore non usare l'ex4 che allego, basta premere [SEARCH] nel forum e digitare henki ashi, cerca qualche MQ4 con tutto il codice

------

quando hai completato o dopo averlo cambiato a 3 o 4 colori (potrebbe essere 3 colori, piuttosto che 4 colori)

per favore mandami un messaggio privato PM a me, con il LINK, così posso caricarlo, dopo che hai iniziato, se vuoi, potrei darti un altro indicatore che ti dirà qual è il momento migliore per cambiare anche il colore in NERO -- il nero è una specie di colore di avvertimento

----- cioè puoi SCARICARE l'ex4 che ho allegato, ma usa un altro MQ4 pls ---

grazie, sarà un buon indicatore per tutti noi, e la codifica dovrebbe essere abbastanza semplice, e dritto in avanti

il codice è all'inizio, simile al diagramma di cui sopra

se la mia ipotesi è corretta, g_ibuf_## controlla la lunghezza della barra HA

dobbiamo solo stampare tutti i valori di g_ibuf con la funzione chiamata "comment"

poi eseguire il grafico per alcuni giorni, e dare un'occhiata al valore g_ibuf, quando diventa piccolo, e notare il VALORE di quella variabile

poi quando abbiamo un intervallo di tempo da codificare, ci limitiamo a codificare da 1 a 2 colori - diciamo, nero e grigio scuro nella codifica, quando l'istogramma g_ibuf è PIÙ PICCOLO di un certo valore annotato

quindi si suppone che sia semplice - altrimenti, potrebbe provare a tentativi ed errori per trovare il miglior valore di misura (per essere più piccolo di)

sinceramente

xx3xxx -- Ho caricato il mio MQ4 per la versione 4 lì, credo che tu possa usare questo, questo sembra essere più lungo e più spesso dell'altro HA che ho

 
 
File:
lsma_nrp.mq4  5 kb
 

L'indicatore Trix ha bisogno di un allarme

Coder Guru o chiunque altro, potete programmare un suono, un avviso di notifica e un avviso di posta t3_trix_x2roc_clr_nrp_mtf.mq4t3_trix_x2roc_clr_nrp_mtf.mq4e in questo indicatore Trix ogni volta che la linea Trix di lungo termine o di breve termine cambia colore da rosso a verde o viceversa. Grazie