Gogetter EA - pagina 3

 

Hai testato questo EA?

 

Ehi..,

Nella mia fretta di darti qualcosa su cui lavorare, ho dimenticato qualcosa di ovvio. Per favore, modifica la tua linea di codice che assomiglia a questa

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber)

a

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

Scusa, è stata una svista. Si sarebbe incasinato quando hai iniziato a negoziare più valute con lo stesso EA e lo stesso Magicnumber.

Comunque, sono contento che tu stia facendo bene. Buon lavoro e ti meriti tutto il merito.

 
Maji:
Ciao,

Nella mia fretta di darvi qualcosa su cui lavorare, ho dimenticato qualcosa di ovvio. Per favore, modifica la tua linea di codice che assomiglia a questa

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber)

a

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

Scusa, è stata una svista. Si sarebbe incasinato quando hai iniziato a negoziare più valute con lo stesso EA e lo stesso Magicnumber.

Comunque, sono felice che tu stia facendo bene. Buon lavoro e ti meriti tutto il merito.

Questo mi ha incuriosito, ma l'ho seguito... tutto è bene quel che finisce bene... correzioni completate. ora devo vedere se posso aggiornare i GG

 

GGlongs Build 1.05

Ecco, così va meglio.

Grazie a Maji ancora una volta per avermi guidato attraverso il miglioramento dei metodi di conteggio degli ordini multipli e i problemi di gestione/modifica degli ordini multipli ecc.

Questo utilizza una nuova funzione di trailing stop e una nuova funzione di conteggio.

Ho anche lavorato su Signal_2 che è quello che ha fatto la miniatura del grafico allegata qui sotto. Questo è il segnale principale del trend. Non ho ancora lavorato sul segnale in controtendenza signal_1. Ma signal_2 è accettabile con queste impostazioni per il ridispiegamento sul grafico GBP/USD a 5m.

Nei test in avanti la versione precedente di GGlongs non è riuscita a inserire un chiaro segnale di acquisto questa mattina. Ho scoperto, esaminando la logica del segnale nella v1.01, che avevo davvero mischiato tutto peggio di quanto pensassi. Comunque il problema è stato risolto... la v1.05 dovrebbe testare molto meglio ora rispetto alla v1.01. Metterò la v1.05 sul forward tester ora accanto alla v2.11 GGs che non ha ancora ricevuto nessuna di queste nuove caratteristiche.

 

Ho notato che sul grafico inalterato non sta modificando affatto... non sta inserendo una nuova serie sulla scia dell'ultima serie come ha sempre fatto prima... mi chiedo perché? Come possono le modifiche che ho fatto fare questo?

Ho scoperto che è perché ho incasinato la logica del segnale... mistero risolto.

File:
 

sono confuso....

Questo è ciò che funziona alla grande nel GGl.....

int ModifyTrades()

{

int trade;

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

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()&&OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop || OrderOpenPrice() - Bid >= 0) {

if(OrderStopLoss() < Bid - Point * TrailingStop || OrderStopLoss() == 0) {

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

}//for

}

}

}

} [/PHP]

so....

why doesn't this work in the GGs???

[PHP]int ModifyTrades()

{

int trade;

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

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()&&OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

if(TrailingStopMode && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop || Ask - OrderOpenPrice() >= 0)) {

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

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

}//for

}

}

}

}

come potete vedere nel rapporto allegato non c'è nessuna 'modifica' in corso... ...ora che ci penso...non ho mai visto nessuna attività di modifica del trailing stop su nessuno dei rapporti della versione GGs! Che succede?

File:
ggs2.21.htm  149 kb
ggs2.21.gif  7 kb
 

La mia prossima sfida di codifica...

Voglio aggiungere supporto e resistenza alla logica del mio EA....

Questo funziona bene per restituire un valore per il massimo più alto di un determinato numero di barre...

//support and resistance

double HIGH = High;

double LOW = Low[Lowest (NULL, 0, MODE_LOW, SupportBarsBack, LStartBack)];

Concentrandomi sulle GG. Ho notato che ogni 145 barre sul grafico a 30 m. c'è un massimo seguito da tre segnali di vendita in controtendenza. Definisco un segnale di vendita in controtendenza ogni volta che la 5ema passa da sopra a sotto la 18ema che si verifica sopra la 150ema. Quindi il modello che vedo è che c'è un nuovo massimo seguito da segnali di vendita.

Osservo inoltre che il primo segnale di vendita dopo un nuovo massimo non è molto produttivo. Il secondo è generalmente più gratificante e il terzo ecc. è dove si verificano i movimenti più grandi.

Quindi...

Dal momento che ora posso generare segnali su misura per ogni situazione, voglio personalizzare i segnali da eseguire a queste diverse occorrenze tutte in relazione al nuovo massimo o al massimo più alto del periodo corrente 145bar.

I segnali posso gestire la personalizzazione...

La sfida sarà localizzare il segnale di vendita in controtendenza in relazione al massimo dell'attuale periodo di 145 barre, e contare quante volte questo segnale si è già verificato dal massimo di quel periodo.

Non sono sicuro di come contare le occorrenze del segnale. Voglio dire che posso contare sul grafico, ma come faccio a far fare il conteggio al codice?

 

come faccio a determinare quante barre indietro nell'array dal momento in cui ricevo il segnale di incrocio della media mobile che si è verificato il massimo alto?

 

Ok, ho capito come ottenere l'arraymaximum e l'array minimum...questo mi dà il numero della barra in cui si verifica il valore, ma me lo dà in termini di numero di barra nel grafico...

se potessi ottenere il numero di barra della barra in cui avviene l'incrocio della media mobile potrei sottrarre i due per vedere quante barre sono indietro rispetto al supporto o alla resistenza dall'occorrenza del segnale...

come posso ottenere il numero della barra del grafico quando si verifica il segnale di incrocio della media mobile?

 
/support and resistance

double HIGH = High;

double LOW = Low[Lowest (NULL, 0, MODE_LOW, SupportBarsBack, LStartBack)];

//support and resistance location

int Hloc = ArrayMaximum(High);

int Lloc = ArrayMinimum(Low);

.

.

.

Print("Order Number: ",OrderTicket() ," ",ResistanceBarsBack," bars back resistance : ",HIGH," @bar",Hloc," & ",SupportBarsBack," bars back support : ",LOW," @bar",Lloc);

[/PHP]

this is what this code is giving me...

[PHP]2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 6 20 bars back resistance : 1.9284 @bar109 & 20 bars back support : 1.9204 @bar205

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9223

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: open #6 sell 0.05 GBPUSD at 1.9223 sl: 1.9270 tp: 1.9118 ok

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: open #5 sell 0.05 GBPUSD at 1.9223 sl: 1.9270 tp: 1.9118 ok

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 4 20 bars back resistance : 1.9224 @bar44 & 20 bars back support : 1.9114 @bar49

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9146

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: open #4 sell 0.05 GBPUSD at 1.9146 sl: 1.9193 tp: 1.9041 ok

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: open #3 sell 0.05 GBPUSD at 1.9146 sl: 1.9193 tp: 1.9041 ok

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 2 20 bars back resistance : 1.9186 @bar100 & 20 bars back support : 1.908 @bar15

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9121

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: open #2 sell 0.05 GBPUSD at 1.9121 sl: 1.9168 tp: 1.9016 ok

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: open #1 sell 0.05 GBPUSD at 1.9121 sl: 1.9168 tp: 1.9016 ok

come faccio a dare un senso a questi numeri di barre?

almeno le barre di supporto sembrano in qualche modo sequenziali 15,49,205

Cosa succede con le barre di resistenza? 100,44,109?? per quello che vale guardando il grafico la prima barra di resistenza è in realtà la prima nella serie di 20 valori non 100. Come 1=100?

quindi in effetti i primissimi due ordini corrispondono al numero di barra per il supporto di 15 barre prima dell'ordine e se il 100 significa 1 allora la resistenza è avvenuta sulla prima barra dell'array di 20 barre.