Aiuto per la codifica - pagina 135

 

grazie mladen .....

ma non funziona ....

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

//| text.mq4 |

//| Copyright 2013, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

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

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

#property indicator_chart_window

extern int timeframe1 = PERIOD_H1;

extern int timeframe2 = PERIOD_D1;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int counted_bars=IndicatorCounted();

//----

string name1="";

string name2="";

color color1;

color color2;

double H1 = iClose(NULL,timeframe1,0);

double D1H = iHigh(NULL,timeframe2,1);

double D1L = iLow(NULL,timeframe2,1);

if(H1>D1H)

{

name1 = "up"; color1 = Blue;

}

if(H1<D1L)

{

name2 = "down"; color2 = Red;

}

ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal",OBJPROP_XDISTANCE,3);

ObjectSet("signal",OBJPROP_YDISTANCE,12);

ObjectSetText("signal",name1,12,"Tahoma",color1);

ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal2",OBJPROP_XDISTANCE,59);

ObjectSet("signal2",OBJPROP_YDISTANCE,12);

ObjectSetText("signal2",name2,12,"Tahoma",color2);

//----

return(0);

}

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

File:
1223123.png  22 kb
 
rizkyd:

grazie mladen .....

ma non funziona ....

Penso che questa pace del codice possa interessarti.

Invece di usare oggetti grafici ho usato buffer normali.

Questo indi confronta SEMPRE H1 e D1

Quindi, non segnerà i prezzi sopra il timeframe H1, ma

segnare su timeframe uguali o inferiori a H1. A volte

sembra strano, sui timeframe più bassi (come segnare le barre

troppo presto) ma se si guarda più vicino al turno orario allora è

bene.

dhl_e.mq4

File:
dhl_e.mq4  3 kb
gbpusdh1.png  30 kb
 
Kalenzo:
Penso che questa pace del codice potrebbe interessarti.

Invece di usare oggetti grafici ho usato buffer normali.

Questo indi confronta SEMPRE H1 e D1

Quindi, non segnerà i prezzi sopra il timeframe H1, ma

segnare su timeframe uguali o inferiori a H1. A volte

sembra strano, sui timeframe più bassi (come segnare le barre

troppo presto) ma se si guarda più vicino al turno orario allora è

bene.

dhl_e.mq4

grazie kalenzo ... proverò questo indi

 
rizkyd:

grazie mladen .....

ma non funziona ....

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

//| text.mq4 |

//| Copyright 2013, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

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

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

#property indicator_chart_window

extern int timeframe1 = PERIOD_H1;

extern int timeframe2 = PERIOD_D1;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int counted_bars=IndicatorCounted();

//----

string name1="";

string name2="";

color color1;

color color2;

double H1 = iClose(NULL,timeframe1,0);

double D1H = iHigh(NULL,timeframe2,1);

double D1L = iLow(NULL,timeframe2,1);

if(H1>D1H)

{

name1 = "up"; color1 = Blue;

}

if(H1<D1L)

{

name2 = "down"; color2 = Red;

}

ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal",OBJPROP_XDISTANCE,3);

ObjectSet("signal",OBJPROP_YDISTANCE,12);

ObjectSetText("signal",name1,12,"Tahoma",color1);

ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal2",OBJPROP_XDISTANCE,59);

ObjectSet("signal2",OBJPROP_YDISTANCE,12);

ObjectSetText("signal2",name2,12,"Tahoma",color2);

//----

return(0);

}

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

Stai confrontando due diversi time frame

Se la barra attuale del time frame 1 è superiore o inferiore alla prima barra chiusa del time frame 2, allora verrà visualizzato il messaggio. Se la barra corrente del time frame 1 non è superiore o inferiore ai precedenti massimo e minimo del time frame 2, allora non verrà visualizzato nulla. Dal codice che hai postato sembrava che questa fosse la tua intenzione (nei miei test ha funzionato bene)

___________________

PS: non mostrerà il testo sui dati storici (dati precedenti). Se vuoi che mostri i dati storici allora tutto deve essere scritto in modo completamente diverso come un indicatore classico

 

EA per il posto automatico stoploss e Take profit dipendono dalla linea Fibo

Ciao

Voglio creare un EA che possa mettere stop loss e take profit ad ogni ordine!

L'EA deve vedere il prezzo di vendita o il prezzo di acquisto e per esempio per il prezzo di acquisto:

se il prezzo dell'ordine di apertura è compreso tra la linea 38.2 e 50 l'EA piazza automaticamente lo stop loss su una linea prima del fibo=23.6 e piazza il take profit su una linea dopo il fibo=61.8

con questa procedura l'EA fa per le posizioni di vendita, per esempio se la posizione è Sell stop@ prezzo X e 38.2 fibo<x<50 fibo! L'EA piazza automaticamente il take profit sul 23.6 fibo e lo stop loss sulla linea 61.8 fibo!

qualcuno può aiutarmi con il codice di questo EA o dirmi un codice simile di questo EA!

****note:

la linea di fibo è calcolata automaticamente dal minimo e dal massimo dell'ultimo giorno!!!!

Tnx

 
mladen:
Stai confrontando due diversi time frame

Se la barra corrente di un time frame 1 è superiore o inferiore alla prima barra chiusa del time frame 2, allora verrà visualizzato il messaggio. Se la barra corrente del time frame 1 non è superiore o inferiore ai precedenti massimo e minimo del time frame 2, allora non verrà visualizzato nulla. Dal codice che hai postato sembrava che questa fosse la tua intenzione (nei miei test ha funzionato bene)

___________________

PS: non mostrerà il testo sui dati storici (dati precedenti). Se vuoi che mostri i dati storici allora tutto deve essere scritto in modo completamente diverso come un indicatore classico

grazie per te mladen ... se hai tempo per favore fallo per mostrare i dati storici ....

PS: questo indi può aiutarmi a mostrare Trend UP o Trend Down

 
rizkyd:
grazie per te mladen ... se hai tempo per favore fallo per mostrare i dati storici .... PS: questo indi può aiutarmi a mostrarmi Trend UP o Trend Down

rizkyd

Hai provato ad usare il canale donchiano multi time frame per questo (per esempio per impostare il time frame del canale donchiano a daily e il periodo a 1 e otterresti quasi esattamente la stessa cosa che stai cercando)

 

Il nuovo arrivato vuole un consiglio/aiuto

Ciao a tutti,

Sono nuovo nel forex, e al momento sono interessato agli indicatori e agli EA. Ho una certa comprensione del codice mq4, ma questo non è ancora sufficiente per ottenere ciò che voglio. Quindi vorrei chiedere consiglio/aiuto agli esperti o alle persone che sanno abbastanza sul codice mq4.

Il mio compito attuale è quello di aggiungere un indicatore personalizzato per EA, e tra l'altro ho ottenuto un bel modello di EA (credo) ho intenzione di condividere con voi

Ok quindi, i miei segnali finali di acquisto/vendita dall'indicatore sono questi: g_ibuf_BUY[1] e g_ibuf_SELL[1]

qui parte del codice quando l'indicatore suona, pop up, invio email.

void Alert_PlaySound_SendMail() {

string ls_ms = "MS PRO";

if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessBuySound(Buy_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessSellSound(Sell_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

}

Il prossimo passo sarebbe aggiungere questi segnali al modello EA? Mhm come... devo usare la funzione iCustom o qualcos'altro da aggiungere all'indicatore prima di poterlo usare? Qualsiasi aiuto sarà apprezzato. Grazie.

File:
 
otnepx:
Ciao a tutti,

Sono nuovo del forex e al momento sono interessato agli indicatori e agli EA. Ho una certa comprensione del codice mq4, ma questo non è ancora sufficiente per ottenere ciò che voglio. Quindi vorrei chiedere consiglio/aiuto agli esperti o alle persone che conoscono abbastanza il codice mq4.

Il mio compito attuale è quello di aggiungere un indicatore personalizzato all'EA, e tra l'altro ho un bel modello EA (credo) che lo condividerò con voi Ok quindi, i miei segnali finali di acquisto/vendita dall'indicatore sono questi: g_ibuf_BUY[1] e g_ibuf_SELL[1]

qui parte del codice quando l'indicatore suona, pop up, invio email.

void Alert_PlaySound_SendMail() {

string ls_ms = "MS PRO";

if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessBuySound(Buy_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessSellSound(Sell_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

}
Il prossimo passo sarebbe aggiungere questi segnali al modello EA? Mhm come... devo usare la funzione iCustom o qualcos'altro necessario aggiungere all'indicatore prima di poterlo usare? Qualsiasi aiuto sarà apprezzato. Grazie.

Non è possibile importare gli avvisi in un'altra parte di codice (indicatore, EA).

Il modo più pulito per fare ciò che vuoi è usare iCustom()

 

Caro Mladen/MrTools,

Gentile richiesta di fare un indicatore basato sulla logica sottostante per il grafico a 1 minuto ... Dovrebbe anche avvisare con le frecce di acquisto/vendita sul grafico ...

logica per l'entrata in acquisto:

un minuto EMA(90) che passa sopra un minuto EMA(390) (significa che il minuto precedente ema 90 è inferiore a ema 390) e l'ema(90) dovrebbe anche essere maggiore di ema(150)

logica per l'uscita di acquisto:

un minuto EMA(90) > EMA(390) e l'ema(90) < ema(150).

logica per l'entrata in vendita :

un minuto EMA(90) che taglia un minuto EMA(390) (significa che il minuto precedente ema 90 è maggiore di ema 390) e l'ema(90) deve anche essere minore di ema(150)

logica per l'uscita in vendita:

un minuto EMA(90) ema(150).

*******************************************************

Il codice Nest per la stessa logica è anche condiviso qui sotto:

espressione di avviso di acquisto

EMA(CLOSE,90) > EMA(CLOSE,390) e REF(EMA(CLOSE,90),1) EMA(CLOSE,150)

espressione di uscita dall'acquisto

EMA(CLOSE,90) > EMA(CLOSE,390) e EMA(CLOSE,90) < EMA(CLOSE,150)

vendere espressione di allarme

EMA(CLOSE,90) REF(EMA(CLOSE,390),1) e EMA(CLOSE,90) < EMA(CLOSE,150)

vendere espressione di uscita

EMA(CLOSE,90) EMA(CLOSE,150)

Grazie

Grazie mille