Lezione 13 - Il tuo primo consulente esperto (parte 1) - pagina 5

 
KelchMonteiro:
davvero grazie mladen!

L'ho visto ora.

Ho fatto lo stesso, date un'occhiata:

for_a_new_life-1.ex4

for_a_new_life-1_1.mq4

Stavo testando la versione mia e testerò anche la tua.

Se questo indicatore è corretto, abbiamo fatto qualche grande per catturare i punti di inversione.

È perché la differenza tra le due medie mobili divisa per la forza 2times, può mostrare quando il prezzo sta ritornando in una tendenza con più sensibilità. Provatelo con un altro indicatore di frontiera e penso che vi piacerà.

alcune foto:

Sono troppo contento perché questo è il mio primo contributo al forum. E non potrei farlo senza il vostro aiuto.

Molte grazie Mladen!

Kelch

Ho fatto solo un cambiamento in esso: cambiare la direzione di esso. Sembra che in questo modo mostri valori un po' più logici. Provate anche in questo modo

for_a_new_life-1.01.mq4

 

Ciao Mladen,

Ho fatto l'EA da icustom dopo averlo compilato nessun errore o avvertimento ma ero Backtest no OP a tutti?

Posso postare il mio EA in questo thread, vorrei il tuo aiuto per risolverlo.

Grazie,

migliore considerazione

 
Dova:
Ciao Mladen,

Ho fatto l'EA da icustom dopo averlo compilato nessun errore o avvertimento ma ero Backtest no OP a tutti?

Posso postare il mio EA in questo thread, vorrei il vostro aiuto per risolverlo.

Grazie,

i migliori saluti

Dova

Postalo così qualcuno gli darà un'occhiata

 
mladen:
Kelch

Ho fatto solo un cambiamento in esso: cambiare la direzione di esso. Sembra che in questo modo mostri dei valori un po' più logici. Provate anche in questo modo

for_a_new_life-1.01.mq4

Grazie mladen!

 

Qui il mio ea di prova...

Questo ea durante la compilazione è ok nessun errore o avvertimento ma nessun OP quando BT.

Vorrei che questo ea può invertire da OP prima,

esempio se la posizione è già BUY che la prossima candela SELL freccia è apparire auto invertire la posizione da BUY a SELL e viceversa.

Aggiungere anche il Trailling Stop.

Scusa per il mio cattivo inglese

pfi.ex4ea_pfi.mq4

Grazie a voi

File:
pfi.ex4  6 kb
ea_pfi.mq4  4 kb
 
Dova:
Qui il mio trial ea...

Questo ea mentre compila è ok nessun errore o avvertimento ma nessun OP quando BT.

Vorrei che questo ea può invertire da OP prima,

esempio se la posizione è già BUY che la prossima candela SELL freccia è apparire auto invertire la posizione da BUY a SELL e viceversa.

Aggiungere anche il Trailling Stop.

Scusa per il mio cattivo inglese

pfi.ex4ea_pfi.mq4

Grazie

Per la chiarezza di chiunque legga questo post: cosa significa esattamente "invertire da OP" o "nessun OP quando BT"?

 
mladen:
Per la chiarezza di chiunque legga quel post: cosa significa esattamente "inversione da OP" o "nessun OP quando BT"?

Voglio dire OP= Posizione aperta, BT= Backtest.

Dopo il backtest non ci sono posizioni aperte.

Quando c'è già una posizione aperta Buy allora la prossima candela sell arrows/signal appare automaticamente chiudere le posizioni long e aprire le posizioni short e viceversa (auto reverse position).

Spero che la mia spiegazione sia chiara.

Grazie

 

Saluti a tutti ....

perdonate se posto sbagliato, a causa dei miei nuovi membri.

per favore il suo supporto della codifica master,

per essere la codifica di questo indicatore in EA.

con l'intenzione di EA sarà in grado di lavorare come volevo, vale a dire:

1.Aprire comprare automaticamente quando il prezzo tocca la linea TL1.

2.open vendere automaticamente quando il prezzo tocca la linea TL2

3.Open comprare automaticamente quando il prezzo è sopra la linea TL2

4.Open vendere automaticamente quando il prezzo è sopra la linea TL1

5.chiuso comprare automaticamente quando il prezzo tocca la linea TL2 procedere direttamente aprire vendere

6.Chiuso vendere automaticamente quando il prezzo tocca la linea TL1 procedere direttamente aprire comprare

7.nomor 3 e 4 chiuso manualmente (senza TrailingStop).

8.SL 50 pips e mettere sul lotto 0.1

9.Time frame H4 per tutte le coppie.

Grazie mille

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

/ / | SHI_Channel_true.mq4 |

/ / | Copyright © 2004 , Shurka & Kevin |

/ / | |

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

# proprietà copyright " Copyright © 2004 , Shurka & Kevin "

# proprietà link " "

/ / ----

# proprietà indicator_chart_window

# proprietà indicator_buffers 1

# proprietà indicator_color1 Red

ExtMapBuffer1 double [ ] ;

/ / ---- Parametri di ingresso

extern int AllBars = 240 ;

BarsForFract extern int = 0 ;

CurrentBar int = 0 ;

double Step = 0 ;

int B1 = -1 , B2 = -1 ;

UpDown int = 0 ;

double P1 = 0 , P2 = 0 , PP = 0 ;

int i = 0 , AB = 300 , BFF = 0 ;

ishift int = 0 ;

doppio iprice = 0 ;

datetime T1 , T2 ;

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

/ / | Funzione di inizializzazione dell'indicatore personalizzato |

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

int init ( )

{

/ / ---- Indicatori

SetIndexStyle ( 0 , DRAW_ARROW ) ;

SetIndexArrow ( 0 , 164 ) ;

SetIndexBuffer ( 0 , ExtMapBuffer1 ) ;

SetIndexEmptyValue ( 0 , 0.0 ) ;

/ / ----

return ( 0 ) ;

}

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

/ / | Funzione di deinizializzazione dell'indicatore Custor |

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

deinit int ( )

{

ObjectDelete ( " TL1 " ) ;

ObjectDelete ( " TL2 " ) ;

ObjectDelete ( " MIDL " ) ;

Commento ( " " ) ;

/ / ----

return ( 0 ) ;

}

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

/ / | |

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

DelObj void ( )

{

ObjectDelete ( " TL1 " ) ;

ObjectDelete ( " TL2 " ) ;

ObjectDelete ( " MIDL " ) ;

}

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

/ / | Funzione di iterazione dell'indicatore personalizzato |

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

int start ( )

{

IndicatorCounted counted_bars = int ( ) ;

/ / ----

if ( ( AllBars == 0 ) | | ( Bars < AllBars ) )

AB = Bars ;

else AB = AllBars ; / / AB - êîëè ÷ ÷ åñòâî Ian èòûâàåìûõ áàðîâ

se ( BarsForFract > 0 )

BFF = BarsForFract ;

altrimenti

switch ( Periodo ( )

{

caso 1 : BFF = 12 ; break;

caso 5 : BFF = 48 ; break;

caso 15 : BFF = 24 ; break;

caso 30 : BFF = 24 ; break;

caso 60 : BFF = 12 ; break;

caso 240 : BFF = 15 ; break;

caso 1440: BFF = 10 ; break;

caso 10080 : BFF = 6 ; break;

default : DelObj ( ), return ( -1 ) ; break;

}

CurrentBar = 2 ; / / ñ ÷ ñ òðåòüåãî Suspected èòàåì , ÷ òîáû ôðàêòàë " çàêðåïèëñÿ

B1 = -1 ;

B2 = -1 ;

UpDown = 0 ;

while ( ( ( B1 == -1 ) | | ( B2 == -1 ) ) && ( CurrentBar < AB ) )

{

/ / UpDown = 1 ÷ eo CIA ïåðâûé ôðàêòàë íàéäåí ñâåðõó , UpDown = -1 ÷ eo CIA ïåðâûé ôðàêòàë

/ / íàéäåí ñíèçó , CIA UpDown = 0 ÷ ¸ AU EO ôðàêòàë he íàéäåí .

/ / A1 a2 è - ÿ áàðîâ íîìåðà ôðàêòàëàìè , ÷ ADAC IEO ñòðîèì îïîðíóþ ëèíèþ .

/ / È D1 D2 - ÷ öåíû ñîîîòâåòñòâåííî ADAC êîòîðûå áóäåì ëèíèþ ïðîâîäèòü

if ( ( UpDown < 1 ) && ( CurrentBar == Più basso ( Symbol ( ) , Period ( ) , MODE_LOW , BFF * 2 + 1 ,

CurrentBar - BFF ) ) )

{

se ( UpDown == 0 )

{

UpDown = -1 ;

B1 = CurrentBar ;

P1 = Basso [ B1 ] ;

}

altrimenti

{

B2 = CurrentBar ;

P2 = Basso [ B2 ] ;

}

}

if ( ( UpDown > -1 ) && ( CurrentBar == Highest ( Symbol ( ) , Period ( ) , MODE_HIGH , BFF * 2 + 1 ,

CurrentBar - BFF ) ) )

{

se ( UpDown == 0 )

{

UpDown = 1 ;

B1 = CurrentBar ;

P1 = Alto [ B1 ] ;

}

else

{

B2 = CurrentBar ;

P2 = Alto [ B2 ] ;

}

}

CurrentBar + + ;

}

se ( B1 == -1 ) | | ( B2 == -1 ) )

{

DelObj ( ) ;

return ( -1 ) ;

} / / Eo ÷ CIA he íàøëè ôðàêòàëîâ ñðåäè 300 áàðîâ 8-)

Step = ( P2 - P1 ) / ( B2 - B1 ) / / Au ÷ èñëèëè OAA , åñëè ïîëîæèòåëüíûé II , OI êàíàë íèñõîäÿùèé

P1 = P1 - B1 * Passo ;

B1 = 0 ; / / ïåðåñòàâëÿåì öåíó ïåðâûé AAD è ê íóëþ

/ / À ÷ eo Oi òåïåðü îïîðíóþ ïðîòèâîïîëîæíîé ëèíèè êàíàëà .

ishift = 0 ;

iprice = 0 ;

if ( UpDown == 1 )

{

PP = Basso [ 2 ] - 2 * Passo ;

for (i = 3 ; i < = B2 ; i + + )

{

se ( Basso [ i ] < PP + Passo * i )

PP = Basso [ i ] - i * Passo ;

}

se ( Basso [ 0 ] < PP )

{

ishift = 0 ;

iprice = PP ;

}

se ( Basso [ 1 ] < PP + Step )

{

ishift = 1 ;

iprice = PP + Step ;

}

se ( Alto [ 0 ] > P1 )

{

ishift = 0 ;

iprice = P1 ;

}

se ( Alto [ 1 ] > P1 + Passo )

{

ishift = 1 ;

iprice = P1 + Step ;

}

}

else

{

PP = High [ 2 ] - 2 * Step ;

per (i = 3 ; i < = B2 ; i + + )

{

se ( Alto [ i ] > PP + Passo * i )

PP = High [ i ] - i * Step ;

}

se ( Basso [ 0 ] < P1 )

{

ishift = 0 ;

iprice = P1 ;

}

se ( Basso [ 1 ] < P1 + Step )

{

ishift = 1 ;

iprice = P1 + Step ;

}

se ( Alto [ 0 ] > PP )

{

ishift = 0 ;

iprice = PP ;

}

se ( Alto [ 1 ] > PP + Passo )

{

ishift = 1 ;

iprice = PP + Step ;

}

}

/ / Òåïåðü ïåðåñòàâèì êîíå ÷ è íóþ öåíó he AAD AA , ÷ òîáû ëíèèè êàíàëà ðèèñîâàëèñü ïîäëèíå

P2 = P1 + AB * Passo ;

T1 = Tempo [ B1 ] ;

T2 = Tempo [ AB ] ;

/ / Åñëè egli áûëî ïåðåñå ÷ åíèÿ êàíàëà , oi 0 , EIA ÷ å ñòàâèì Ineno .

se ( iprice ! = 0 )

ExtMapBuffer1 [ ishift ] = iprice ;

DelObj ( ) ;

ObjectCreate ( " TL1 " , OBJ_TREND , 0 , T2 , PP + Step * AB , T1 , PP ) ;

ObjectSet ( " TL1 " , OBJPROP_COLOR , Lime ) ;

ObjectSet ( " TL1 " , OBJPROP_WIDTH , 2 ) ;

ObjectSet ( " TL1 " , OBJPROP_STYLE , STYLE_SOLID ) ;

ObjectCreate ( " TL2 " , OBJ_TREND , 0 , T2 , P2 , T1 , P1 ) ;

ObjectSet ( " TL2 " , OBJPROP_COLOR , White ) ;

ObjectSet ( " TL2 " , OBJPROP_WIDTH , 2 ) ;

ObjectSet ( " TL2 " , OBJPROP_STYLE , STYLE_SOLID ) ;

ObjectCreate ( " MIDL " , OBJ_TREND , 0 , T2 , ( P2 + PP + Step * AB ) / 2 , T1 , ( P1 + PP ) / 2 ) ;

ObjectSet ( " MIDL " , OBJPROP_COLOR , Giallo ) ;

ObjectSet ( " MIDL " , OBJPROP_WIDTH , 1 ) ;

ObjectSet ( " MIDL " , OBJPROP_STYLE , STYLE_DOT ) ;

Comment ( " Channel size = " , DoubleToStr ( MathAbs ( PP - P1 ) / Point , 0 ) , " Pendenza = " ,

DoubleToStr ( - Step / Point , 2 ) ) ;

/ / ----

return ( 0 ) ;

}

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

 
djiwenk:
Saluti a tutti ....

perdonate se posto sbagliato, a causa dei miei nuovi membri.

per favore il suo supporto della codifica master,

per essere la codifica di questo indicatore in EA.

con l'intenzione di EA sarà in grado di lavorare come volevo, vale a dire:

1.Aprire comprare automaticamente quando il prezzo tocca la linea TL1.

2.open vendere automaticamente quando il prezzo tocca la linea TL2

3.Open comprare automaticamente quando il prezzo è sopra la linea TL2

4.Open vendere automaticamente quando il prezzo è sopra la linea TL1

5.chiuso comprare automaticamente quando il prezzo tocca la linea TL2 procedere direttamente aprire vendere

6.Chiuso vendere automaticamente quando il prezzo tocca la linea TL1 procedere direttamente aprire comprare

7.nomor 3 e 4 chiuso manualmente (senza TrailingStop).

8.SL 50 pips e mettere sul lotto 0.1

9.Time frame H4 per tutte le coppie.

Grazie mille

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

/ / | SHI_Channel_true.mq4 |

/ / | Copyright © 2004 , Shurka & Kevin |

/ / | |

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

# proprietà copyright " Copyright © 2004 , Shurka & Kevin "

# proprietà link " "

/ / ----

# proprietà indicator_chart_window

# proprietà indicator_buffers 1

# proprietà indicator_color1 Red

ExtMapBuffer1 double [ ] ;

/ / ---- Parametri di ingresso

extern int AllBars = 240 ;

BarsForFract extern int = 0 ;

CurrentBar int = 0 ;

double Step = 0 ;

int B1 = -1 , B2 = -1 ;

UpDown int = 0 ;

double P1 = 0 , P2 = 0 , PP = 0 ;

int i = 0 , AB = 300 , BFF = 0 ;

ishift int = 0 ;

double iprice = 0 ;

datetime T1 , T2 ;

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

/ / | Funzione di inizializzazione dell'indicatore personalizzato |

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

int init ( )

{

/ / ---- Indicatori

SetIndexStyle ( 0 , DRAW_ARROW ) ;

SetIndexArrow ( 0 , 164 ) ;

SetIndexBuffer ( 0 , ExtMapBuffer1 ) ;

SetIndexEmptyValue ( 0 , 0.0 ) ;

/ / ----

return ( 0 ) ;

}

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

/ / | Funzione di deinizializzazione dell'indicatore Custor |

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

deinit int ( )

{

ObjectDelete ( " TL1 " ) ;

ObjectDelete ( " TL2 " ) ;

ObjectDelete ( " MIDL " ) ;

Commento ( " " ) ;

/ / ----

return ( 0 ) ;

}

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

/ / | |

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

DelObj void ( )

{

ObjectDelete ( " TL1 " ) ;

ObjectDelete ( " TL2 " ) ;

ObjectDelete ( " MIDL " ) ;

}

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

/ / | Funzione di iterazione dell'indicatore personalizzato |

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

int start ( )

{

IndicatorCounted counted_bars = int ( ) ;

/ / ----

if ( ( AllBars == 0 ) | | ( Bars < AllBars ) )

AB = Bars ;

else AB = AllBars ; / / AB - êîëè ÷ ÷ åñòâî Ian èòûâàåìûõ áàðîâ

se ( BarsForFract > 0 )

BFF = BarsForFract ;

altrimenti

switch ( Periodo ( )

{

caso 1 : BFF = 12 ; break;

caso 5 : BFF = 48 ; break;

caso 15 : BFF = 24 ; break;

caso 30 : BFF = 24 ; break;

caso 60 : BFF = 12 ; break;

caso 240 : BFF = 15 ; break;

caso 1440: BFF = 10 ; break;

caso 10080 : BFF = 6 ; break;

default : DelObj ( ), return ( -1 ) ; break;

}

CurrentBar = 2 ; / / ñ ÷ ñ òðåòüåãî Suspected èòàåì , ÷ òîáû ôðàêòàë " çàêðåïèëñÿ

B1 = -1 ;

B2 = -1 ;

UpDown = 0 ;

while ( ( ( B1 == -1 ) | | ( B2 == -1 ) ) && ( CurrentBar < AB ) )

{

/ / UpDown = 1 ÷ eo CIA ïåðâûé ôðàêòàë íàéäåí ñâåðõó , UpDown = -1 ÷ eo CIA ïåðâûé ôðàêòàë

/ / íàéäåí ñíèçó , CIA UpDown = 0 ÷ ¸ AU EO ôðàêòàë he íàéäåí .

/ / A1 a2 è - ÿ áàðîâ íîìåðà ôðàêòàëàìè , ÷ ADAC IEO ñòðîèì îïîðíóþ ëèíèþ .

/ / È D1 D2 - ÷ öåíû ñîîîòâåòñòâåííî ADAC êîòîðûå áóäåì ëèíèþ ïðîâîäèòü

if ( ( UpDown < 1 ) && ( CurrentBar == Più basso ( Symbol ( ) , Period ( ) , MODE_LOW , BFF * 2 + 1 ,

CurrentBar - BFF ) ) )

{

se ( UpDown == 0 )

{

UpDown = -1 ;

B1 = CurrentBar ;

P1 = Basso [ B1 ] ;

}

altrimenti

{

B2 = CurrentBar ;

P2 = Basso [ B2 ] ;

}

}

if ( ( UpDown > -1 ) && ( CurrentBar == Highest ( Symbol ( ) , Period ( ) , MODE_HIGH , BFF * 2 + 1 ,

CurrentBar - BFF ) ) )

{

se ( UpDown == 0 )

{

UpDown = 1 ;

B1 = CurrentBar ;

P1 = Alto [ B1 ] ;

}

else

{

B2 = CurrentBar ;

P2 = Alto [ B2 ] ;

}

}

CurrentBar + + ;

}

se ( B1 == -1 ) | | ( B2 == -1 ) )

{

DelObj ( ) ;

return ( -1 ) ;

} / / Eo ÷ CIA he íàøëè ôðàêòàëîâ ñðåäè 300 áàðîâ 8-)

Step = ( P2 - P1 ) / ( B2 - B1 ) / / Au ÷ èñëèëè OAA , åñëè ïîëîæèòåëüíûé II , OI êàíàë íèñõîäÿùèé

P1 = P1 - B1 * Passo ;

B1 = 0 ; / / ïåðåñòàâëÿåì öåíó ïåðâûé AAD è ê íóëþ

/ / À ÷ eo Oi òåïåðü îïîðíóþ ïðîòèâîïîëîæíîé ëèíèè êàíàëà .

ishift = 0 ;

iprice = 0 ;

if ( UpDown == 1 )

{

PP = Basso [ 2 ] - 2 * Passo ;

for (i = 3 ; i < = B2 ; i + + )

{

se ( Basso [ i ] < PP + Passo * i )

PP = Basso [ i ] - i * Passo ;

}

se ( Basso [ 0 ] < PP )

{

ishift = 0 ;

iprice = PP ;

}

se ( Basso [ 1 ] < PP + Step )

{

ishift = 1 ;

iprice = PP + Step ;

}

se ( Alto [ 0 ] > P1 )

{

ishift = 0 ;

iprice = P1 ;

}

se ( Alto [ 1 ] > P1 + Passo )

{

ishift = 1 ;

iprice = P1 + Step ;

}

}

else

{

PP = High [ 2 ] - 2 * Step ;

per (i = 3 ; i < = B2 ; i + + )

{

se ( Alto [ i ] > PP + Passo * i )

PP = High [ i ] - i * Step ;

}

se ( Basso [ 0 ] < P1 )

{

ishift = 0 ;

iprice = P1 ;

}

se ( Basso [ 1 ] < P1 + Step )

{

ishift = 1 ;

iprice = P1 + Step ;

}

se ( Alto [ 0 ] > PP )

{

ishift = 0 ;

iprice = PP ;

}

se ( Alto [ 1 ] > PP + Passo )

{

ishift = 1 ;

iprice = PP + Step ;

}

}

/ / Òåïåðü ïåðåñòàâèì êîíå ÷ è íóþ öåíó he AAD AA , ÷ òîáû ëíèèè êàíàëà ðèèñîâàëèñü ïîäëèíå

P2 = P1 + AB * Passo ;

T1 = Tempo [ B1 ] ;

T2 = Tempo [ AB ] ;

/ / Åñëè egli áûëî ïåðåñå ÷ åíèÿ êàíàëà , oi 0 , EIA ÷ å ñòàâèì Ineno .

se ( iprice ! = 0 )

ExtMapBuffer1 [ ishift ] = iprice ;

DelObj ( ) ;

ObjectCreate ( " TL1 " , OBJ_TREND , 0 , T2 , PP + Step * AB , T1 , PP ) ;

ObjectSet ( " TL1 " , OBJPROP_COLOR , Lime ) ;

ObjectSet ( " TL1 " , OBJPROP_WIDTH , 2 ) ;

ObjectSet ( " TL1 " , OBJPROP_STYLE , STYLE_SOLID ) ;

ObjectCreate ( " TL2 " , OBJ_TREND , 0 , T2 , P2 , T1 , P1 ) ;

ObjectSet ( " TL2 " , OBJPROP_COLOR , White ) ;

ObjectSet ( " TL2 " , OBJPROP_WIDTH , 2 ) ;

ObjectSet ( " TL2 " , OBJPROP_STYLE , STYLE_SOLID ) ;

ObjectCreate ( " MIDL " , OBJ_TREND , 0 , T2 , ( P2 + PP + Step * AB ) / 2 , T1 , ( P1 + PP ) / 2 ) ;

ObjectSet ( " MIDL " , OBJPROP_COLOR , Giallo ) ;

ObjectSet ( " MIDL " , OBJPROP_WIDTH , 1 ) ;

ObjectSet ( " MIDL " , OBJPROP_STYLE , STYLE_DOT ) ;

Comment ( " Channel size = " , DoubleToStr ( MathAbs ( PP - P1 ) / Point , 0 ) , " Pendenza = " ,

DoubleToStr ( - Step / Point , 2 ) ) ;

/ / ----

return ( 0 ) ;

}

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

djiwenk

Sai che il canale shi cambia tutto il tempo (come il prezzo corrente cambia il canale shi cambierà anche)?

 

ea creare libro

crea il tuo ea

File:
eaprog.pdf  1296 kb