Fragen Sie! - Seite 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

zum Beispiel:[PHP]ts = pBid - TrailingStop_Over135*pp;

if (ts > OrderOpenPrice() && ts > OrderStopLoss()) ÄndernStopLoss(ts);

 

bitte kann ich um Hilfe bitten

Darf ich jemanden bitten, einen Blick auf meinen Code zu werfen, um zu sehen, wo er falsch ist, bitte....Ich bin kein guter Programmierer und würde mich über Hilfe freuen.

Vielen Dank im Voraus

Außerdem ist mir gerade etwas aufgefallen - es gibt einen Typen namens Ben Taylor, der einen EA verkauft, der fast genau so aussieht wie der, den Coders Guru programmiert hat - vielleicht ist das einer seiner Kunden - lol

Wenn nicht - sollten wir Coders Guru davon in Kenntnis setzen

Dateien:
 
Michel:
Wenn nötig, überprüfen Sie zunächst, dass Sie später als 8 Uhr sind:
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;

...

Hallo Michel:

Ich beziehe mich auf deinen Code:

if(Hour() < 8) return;

Ich habe den Code wie folgt geändert:

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

.....

.....

.....

.....

if(hr_x==1) signal=50;

Aber ich hatte alle Histogramm-Balken 50!!!!

Wenn man sich den Chart unten ansieht, scheint es, dass der Befehl "Hour" ihn nicht erkennt!!!

FYI, ich bin mit 30 min Chart, wird es eine andere. Ich habe versucht, zu einem 1-Stunden-Chart zu wechseln, aber das Problem besteht immer noch!

Ich habe auch versucht, "if(Hour() < 8) return; ", aber alle die Bar weg!!!

Ich habe viele Dinge versucht, aber immer noch nicht bekommen es funktioniert.

Möglich, mich wieder zu beraten? Danke

Dateien:
untitled_5.jpg  115 kb
 
n3sve1k4s:
Hallo codersguru könnten Sie Signal mit Pop-up und Pfeile zu Indikator unten hinzufügen?

Kann jemand ein Signal hinzufügen???

 

Vielen Dank, Michel, für die richtige Korrektur meiner dreifachen Trailing-Stop-Codierung. Dies wird hoffentlich die endgültige Lösung für meine neue Ea-Kreation sein. Ohne die Großzügigkeit des Wissens von allen wäre ich nicht in der Lage gewesen, diese Sprache zu programmieren. Ich mache mir Notizen zu allen neuen Informationen, die ich über diese Sprache erhalte. Ich hoffe, dass sich die Kodierung mit der Einführung von MT5 nicht zu radikal ändern wird - ich würde ungern wieder ganz von vorne anfangen! Nochmals vielen Dank!!

Dave

<<<

 
solamax:

Kann ich jemanden bitten, einen Blick auf meinen Code zu haben, um zu sehen, wo es falsch ist bitte....Ich bin nicht viel von einem Programmierer und würde einige Hilfe mit diesem zu schätzen wissen.

Vielen Dank im Voraus

Außerdem ist mir gerade etwas aufgefallen - es gibt einen Typen namens Ben Taylor, der einen EA verkauft, der fast genau so aussieht wie der, den Coder's Guru programmiert hat - vielleicht ist das einer seiner Kunden - lol

wenn nicht - sollten wir den Programmierer-Guru darüber informieren
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);

Wenn ich ein Problemfeld ausmachen müsste, wäre es der obige Code. Es muss einen Crossover für einen Kauf und einen Verkauf geben.

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-Zurück

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; // Ein richtiger 'UP'-Crossover hat stattgefunden!

if(Sell1_1Buy2_2) Then Sell; // Ein richtiger 'DOWN'-Crossover ist eingetreten!

Dave

 

Dies ist nicht ganz das, wonach Sie suchen, aber schauen Sie es sich trotzdem an. Hängen Sie es an ein anderes Diagramm an und es überwacht alle Gewinne und Verluste von Diagrammen, die funktionierende Eas enthalten.

 

Dave - du bist ein Segen:)

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);

Wenn ich einen Problembereich ausfindig machen müsste, dann wäre es dieser Code oben. Es muss einen Crossover für einen Kauf und einen Verkauf geben.

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-Zurück

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; // Ein richtiger 'UP'-Crossover hat stattgefunden!

if(Sell1_1Buy2_2) Then Sell; // Ein richtiger 'DOWN' Crossover ist eingetreten!

Dave

vielen Dank - ich werde es ausprobieren

 

Kodierungshilfe benötigt

Jede Hilfe wird geschätzt..

Dies würde in einem EA als eine Komponente der Handelsabschlussroutine gehen.

Ich muss eine Variable erstellen, die immer den höchsten historischen Saldo des Kontos zurückgibt. Ich denke, dies würde ein Array erfordern?

Praktisch gesehen würde die Sprache lauten. "Wenn mein offener Gewinn um X Pips höher ist als der historische Höchststand des Kontos, schließe alle Trades."

Wenn mir jemand mit der Variable helfen kann, kann ich den Rest wohl selbst programmieren.

Vielen Dank im Voraus.

 

Danke für Ihre Antwort, aber Sie haben Recht, sie sind nicht genau das, was ich suche.

Ich habe noch nicht den richtigen Code, um das Problem zu lösen.

Ich brauche den Code, um die "Hochwassermarke" des Kontostands zurückzugeben.

Nochmals vielen Dank, ich schätze jede Hilfe.

Dave137:
Das ist nicht ganz das, wonach Sie suchen, aber sehen Sie es sich trotzdem an. Hängen Sie es an ein anderes Diagramm an, und es überwacht alle Gewinne und Verluste von Diagrammen, die funktionierende EAs enthalten.