Chiedete! - pagina 108

 
Dave137:
void TrailingPositions() {

double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

if (OrderType()==OP_BUY) {

pBid = MarketInfo(OrderSymbol(), MODE_BID);

//BreakEven routine

if (BreakEven>0) {

if ((pBid-OrderOpenPrice())>BreakEven*pp) {

if ((OrderStopLoss()-OrderOpenPrice())<0) {

ModifyStopLoss(OrderOpenPrice()+0*pp);

}

}

}

if (TrailingStop>0) {

if ((pBid-OrderOpenPrice())>TrailingStop_Over135*pp){ //15 pips TS

ModifyStopLoss(pBid-TrailingStop_Over135*pp);

if (pBid-OrderOpenPrice()>TrailingStop_Over90*pp && pBid-OrderOpenPrice()<TrailingStop_Over135*pp){ //55 pips TS

ModifyStopLoss(pBid-TrailingStop_Over90*pp);

if ((OrderOpenPrice()-pAsk)>TrailingStop +TrailingStep+1*pp && (OrderOpenPrice()-pAsk) < TrailingStop_Over90*pp+TrailingStep-1*pp || OrderStopLoss()==0) {//75 pips TS

ModifyStopLoss(pAsk+TrailingStop*pp);

return;

}

}

}

}

}[/PHP]

Three levels of Trailing Stop:

1) 75 Pips TS up to first 90 Pips Profit.

2) 55 Pips TS after 90 but only up to 135 pips profit.

3) 15 Pips TS after 135 pips profit.

The problem I am having is the Trailing Stop moves both up and down as the price moves up and down . . It should just be moving up as the price profit increases and stop if the price starts dropping! How do I get it to stop moving down as the price drops - The Trailing Stop is acting like a Yo-Yo as the price moves up and down.

I am not sure how to stop this from happening?? Please, I need your expertise!

Humbly,

Dave

per esempio:[PHP]ts = pBid - TrailingStop_Over135*pp;

se (ts > OrderOpenPrice() && ts > OrderStopLoss()) ModificaStopLoss(ts);

 

per favore posso chiedere aiuto

Posso chiedere a qualcuno di dare un'occhiata al mio codice per vedere dove è sbagliato per favore....Non sono un gran programmatore e apprezzerei un po' di assistenza con questo.

molte grazie in anticipo

Inoltre ho appena realizzato qualcosa - c'è un ragazzo chiamato Ben Taylor che vende un EA che sembra quasi esattamente come quello programmato da coder's guru - forse questo è uno dei suoi clienti - lol

se non è così - dovremmo far sapere a coders guru di questo

File:
 
Michel:
Se necessario, controlla prima di tutto di essere oltre le 8 del mattino:
if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

Ciao Michel:

Mi riferisco al tuo codice:

if(Hour() < 8) return;

Ho modificato il codice come segue:

if(Hour()>12) hr_x=1;

.....

.....

.....

.....

if(hr_x==1) signal=50;

Ma avevo tutte le barre dell'istogramma 50!!!!

Se guardate il grafico qui sotto, sembra che il comando "Hour" non lo riconosca!!!

Per tua informazione, sto usando un grafico a 30 minuti, ci sarà una differenza. Ho provato a passare al grafico a 1 ora ma il problema esiste ancora!

Ho anche provato "if(Hour() < 8) return; " ma tutte le barre sono sparite!

Ho provato molte cose ma non riesco ancora a farlo funzionare.

È possibile consigliarmi di nuovo? Grazie

File:
untitled_5.jpg  115 kb
 
n3sve1k4s:
Ciao codersguru potresti aggiungere un segnale con pop-up e frecce all'indicatore qui sotto?

qualcuno può aggiungere un segnale?

 

Grazie Michel per la corretta correzione della codifica del mio triplo Trailing Stop. Si spera che questo metta la correzione finale alla mia nuova creazione di ea. Senza la generosità della conoscenza di tutti, non sarei stato in grado di programmare questo linguaggio. Prendo nota di tutte le nuove informazioni che acquisisco su questo linguaggio. Spero che quando MT5 sarà introdotto, la codifica non cambierà troppo radicalmente - non vorrei ricominciare tutto da capo! Grazie ancora!

Dave

<<<

 
solamax:

Posso chiedere a qualcuno di dare un'occhiata al mio codice per vedere dove è sbagliato per favore....Non sono un gran programmatore e apprezzerei un po' di assistenza con questo.

molte grazie in anticipo

Inoltre ho appena realizzato qualcosa - c'è un tizio chiamato Ben Taylor che vende un EA che assomiglia quasi esattamente a quello programmato da coder's guru - forse questo è uno dei suoi clienti - lol

se non è così - dovremmo farlo sapere al guru dei codificatori
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

Se dovessi azzerare un'area problematica, sarebbe questo codice qui sopra. Ci deve essere un cross over per un acquisto e una vendita.

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy; // Si è verificato il corretto incrocio 'UP'!

if(Sell1_1Buy2_2) Then Sell; // Si è verificato il corretto incrocio 'DOWN'!

Dave

 

Questo non è proprio quello che stai cercando, ma guardalo comunque. Attacca ad un altro grafico e monitora tutti i profitti e le perdite dei grafici che hanno degli ea funzionanti.

 

Dave - sei una benedizione:)

Dave137:
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

Se dovessi azzerare un'area problematica, sarebbe questo codice sopra. Ci deve essere un cross over per un acquisto e una vendita.

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy; // Si è verificato il corretto incrocio 'UP'!

if(Sell1_1Buy2_2) Then Sell; // Si è verificato il corretto incrocio 'DOWN'!

Dave

Grazie mille - ci proverò

 

Aiuto di codifica necessario

Qualsiasi aiuto è apprezzato.

Questo andrebbe in un EA come componente della routine di chiusura degli scambi.

Ho bisogno di creare una variabile che restituisca sempre il saldo storico più alto del conto. Penso che questo richieda un array?

In termini pratici, il linguaggio direbbe. "se il mio profitto aperto è X-pips più alto del saldo più alto di tutti i tempi nel conto, chiudi tutti i trade".

Se qualcuno può aiutare con la variabile penso di poter codificare il resto.

Grazie in anticipo.

 

Grazie per la tua risposta, ma hai ragione, non sono esattamente quello che sto cercando.

Non ho ancora il codice esperto per affrontare il problema.

Ho bisogno del codice per restituire il "high watermark" del saldo del conto.

Grazie ancora, qualsiasi aiuto è apprezzato.

Dave137:
Questo non è proprio quello che stai cercando, ma guardalo comunque. Attacca ad un altro grafico e monitora tutti i profitti e le perdite dei grafici che hanno degli ea funzionanti.
Motivazione: