Inhalte aufrufen

  • Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

BeastieV1.0

- - - - -

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
90 Antworten zu diesem Thema

  #1
OFFLINE   traderdoc

*
BELIEBT

Liebe Tierfreunde,

das wird jetzt keine neue Folge von Hr. Grzimek, sondern eine Neuauflage des Beastie von SH in seiner Version vom 20.01.2011 aus

Please Login or Register to see this Hidden Content

.
Das dort benutze Setfile ist so übernommen wurden, denn es ging erstmal nicht um eine Setoptimierung, sondern um höhere Stabilität des Programms als solches.Der EA selbst wurde an sich von der Programmlogik bisher! nicht verändert, jedoch wurden zahlreiche Bugs beseitigt, auf die ich im Einzelnen in den nächsten Posts eingehen werde. Die Erläuterungen, was die Bugbeseitigung bewirken sollte, wird an entsprechende Stelle erklärt.
Der zweite Grund, sich dieser Beastie-Version zu widmen, war die bisherige unbefriedigende Performance unter Benutzung der TrendTrades. Die Performance unter alleiniger Benutzung von CounterTrades wurde von MANDL2007 eindrucksvoll ertradet und ist für jedermann unter myfxbook.com einsehbar (

Please Login or Register to see this Hidden Content

). Aber auch sein Account läuft eben mit einem abgeschalteten TrendTrade-Teil, was im Endeffekt natürlich schade ist.

D.h. im Weiteren wird an der TendTrade-Performance gearbeitet. In der Vergangenheit wurde beobachtet, dass nahezu alle CounterTrades im Plus und fast alle TrendTrades im Minus geschlossen hatten. Da könnte man ja auf die alte Idee kommen, "einfach" die Signalgebung in die andere Traderichtung zu drehen?, unter Berücksichtigung aller davon abhängigen zu berechnenden Variablen, wie SL, TP, BE usw. Auch ist der Frage nachzugehen, ob es nötig und sinnvoll ist, die im bisherigen Code verankerten beiden!! Wege zu einem TrendTrade zu kommen, so aufrecht erhalten zu lassen. SH sah nämlich vor, beim entsprechenden Schalter TradeTrend=true; die TrendTrades sowohl aus dem Teilprogramm der CounterTrades heraus (mit TrendTradeWithCT = true;) öffnen zu lassen, als auch über einen völlig separaten Weg!

Es gelten derzeitig: TradeTrend=false; und TrendTradeWithCT = false; (könnten aber auch wahlweise eingeschaltet werden).
Die derzeitig einzig neue Variable unter F7 heisst: UseDisplay = false; und bewirkt unter dieser Einstellung keine Anzeige der sehr vielen Variablen im Chart.

Ich hoffe und wünsche mir, dass zahlreiche User des Tierchens dieses wieder zum Leben erwecken und die zahlreichen individuellen Sets aller User dazu beitragen mögen, dass nicht nur ein "optimales" für die CouterTrades gefunden wird, was dank MANDL2007 evtl. schon gefunden wurde, sondern dass auch die Benutzung der TrendTrades wieder ihre Berechtigung bekommen und mit einer glänzenden Performance den CouterTrades in nichts nachstehen.

Das Beastie ist leider tot, es lebe aber BeastieV1.0!

traderdoc

Dateianhang


  • MasterBO, PriNova, MANDL2007 und 3 anderen gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #2
OFFLINE   traderdoc

Der aus meiner Sicht größte Bug (vorallem für 4-Digit-Broker-User) lag im Teil:
(Fehler in rot, Korrekturen in grün)
double CalculateVolatility(int period, int LookBack) {
//Calculates the volatility of a pair based on an average of their movement over LookBack periods
double pips;
for (int cc = 1; cc < LookBack; cc++) {
pips+= iHigh(NULL, period, cc) - iLow(NULL, period, cc);
}

pips/= LookBack;//Average pips movement per day

//Convert to pips
int multiplier;
if (Digits == 2) multiplier = 10;100;
if (Digits == 3) multiplier = 100;1000;
if (Digits == 4) multiplier = 1000;10000;
if (Digits == 5) multiplier = 10000; 100000;

pips*= multiplier;
int rpips = pips;//Convert to a simple integer - all we need

return(rpips);
}

Hier wird die Volatilität anhand der High/Low der letzten LookBack-Kerzen im TF D1 (Übergabe aus dem Funktionsaufruf) berechnet.
Die roten Zahlen sind leider 1 Zehnerpotenz zu klein!!, weil z.B. bei GBPJPY (beim 4-Digit-Broker) die zweistellige Kursangabe zum multiplier =10 führt und damit die pips-Errechnung eine Zehnerpotenz zu klein ausfällt. Dito für alle anderen WP (auch unter 5-Digit-Broker).

Somit wird die ständig viel zu klein ausfallende pips (rpips)-Zahl, die die Volatilität darstellt in den nächsten beiden Funktionen z.T.! falsch weiterverarbeitet:

void CalculateReEntryLinePips() {
//Set up volatility level
ReEntryLinePips = 250;

if (Volatility < LowVolatility) ReEntryLinePips = 150;
if (Volatility >= LowVolatility && Volatility < MediumVolatility) ReEntryLinePips = 175;
if (Volatility >= MediumVolatility && Volatility < HighVolatility) ReEntryLinePips = 200;
if (Volatility >= HighVolatility && Volatility < PsychoticallyDeranged) ReEntryLinePips = 225;

//Adapt to x digit criminals
double multiplier;
if(Digits == 2 || Digits == 4) multiplier = 1;
if(Digits == 3 || Digits == 5) multiplier = 10;
if(Digits == 6) multiplier = 100;
if(Digits == 7) multiplier = 1000;

ReEntryLinePips*= multiplier;
Volatility*= multiplier;Korrektur - Zeile entfernen!
}

Hier würde dann letztendlich ReEntryLinePips permanent den Wert 150 annehmen, weil der erste Vergleich true ausfällt. (Volatilität für D1 liegt mit Bug bei etwa 5 bis 20 pips!) und die Volatilität in der letzten Zeile würde:
1. für 4-Digit-Broker beim alten Wert bleiben (falscher Pip-Wert!!!)
2. für 5-Digit-Broker eine Zehnerpotenz größer werden (dieser Wert entspräche dann dem realen Pip-Wert!!!)

Die Folge wäre, bei Usern, die mit einem 4-Digit-Broker arbeiten, würden dann für die Berechnung der Close-Lines (Gold, Green oder White) permanent die CounterTrades auf der Gold-Line geschlossen werden, denn
void CalculateTradeClosureLine() {
//Calculates the CounterTrend trade closure lines based on the pair's calculated volatility
CloseTradeAtGold=false;
CloseTradeAtGreen=false;
CloseTradeAtMiddleWhiteLine=false;
//Low
if (Volatility < LowVolatility) CloseTradeAtGold = true;
//Medium/high
if (Volatility >= LowVolatility && Volatility < PsychoticallyDeranged) CloseTradeAtGreen = true;
//Deranged
if (Volatility >= PsychoticallyDeranged) CloseTradeAtMiddleWhiteLine = true;
}

Auch hier würde der erste Vergleich true werden und CloseTradeAtGold = true; damit immer Close auf der Gold-Line!!
Die User mit 5-Digit-Brokern hätten hier Glück gehabt, denn mit dem obigen 10fachen der Volatilität (rote Zeile im 2. Code) würde dann im letzten Code-Teil richtig gerechnet werden.

Wer also unter 4-Digit-Brokern ständig ein Schließen auf der Gold-Line gesehen hat und für alle Broker eine ReEntryLine mit einer Distanz von permanent 150 Pips, braucht sich daher nicht wundern.

Bis zum nächsten mal!

traderdoc
  • MasterBO und PriNova gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #3
OFFLINE   MANDL2007

ok ... bin dabei:)

Habe 2 neue MT4 bei IBFX AU aufgesetzt - eines mit dem hier durch traderdoc reingestellten (korrigierten) beastie und dem dort vorhandenen setfile (aber Achtung Trendtraden ausschalten !), sowie ein zweites ebenfalls mit dem "Beastiev1.0" - jedoch mitdem setfile aus dem schon seit dem 23.02.11 laufenden "whips beastie" (s. meine Signatur unten). Verlinkung mit myfxbook folgt dann noch - aber in der Abteilung "Forex - Journal" hier im "Forum" in FF.de !
"I DO it my way !" (frei nach F.S.)
Mein EA Portfolio: http://www.stevehopw...php?f=36&t=1374 (TGTFX, TGTFX1, TGTFX2, MANDL2007)

  #4
OFFLINE   forexler

if (Digits == 2) multiplier = 10;100;
if (Digits == 3) multiplier = 100;1000;
if (Digits == 4) multiplier = 1000;10000;
if (Digits == 5) multiplier = 10000; 100000;


warum du nicht verwenden einfach die Mathpow Funktion, dann hast das ganze in einer zeile für alle Digits?

@Dive, die ganzen zitat button und der gleichen funken einfach nicht mit Chrome


  #5
OFFLINE   MasterBO

ok ... bin dabei:)

Habe 2 neue MT4 bei IBFX AU aufgesetzt - eines mit dem hier durch traderdoc reingestellten (korrigierten) beastie und dem dort vorhandenen setfile (aber Achtung Trendtraden ausschalten !), sowie ein zweites ebenfalls mit dem "Beastiev1.0" - jedoch mitdem setfile aus dem schon seit dem 23.02.11 laufenden "whips beastie" (s. meine Signatur unten). Verlinkung mit myfxbook folgt dann noch - aber in der Abteilung "Forex - Journal" hier im "Forum" in FF.de !


Kannst du das Setfile von Whips hier nochmal hochladen. Somit hat man alles mal im Überblick. Danke!

So ich werde das Whips Setfile mal live auf einen 300er Account nächste Woche laufen. Dabei bin ich am Überlegen, dass ich nur 2 oder 3 Währungspaare vonn den Hauptwährungen nehme. Warum. man hat es bei der Japan Krise (Tsunami) gesehen, dass aufeinmal alle JPY Whrungspaare eingeknickt sind. Dies möchte ich gerne in Zukunft vermeiden.

Ich denke Whips Setifile ist schon nicht schlecht.

Folgende Paare habe ich im Fokus:
- EURUSD, AUDUSD, GBPUSD -> 0.02
- EURJPY, USDJPY, GBPJPY -> 0.01
- EURCHF, USDCHF, NZDCHF -> 0.02
- AUDCAD, USDCAD, CADCHF -> 0.02

Mit diesen Währungspaaren und einen 300$ Account auf IBFX mit 0,02 will ich mal starten. Mal schauen wie es aussieht.
Wenn euch der Post gefällt, dann gibt mir ein Thank You!!!

An der Börse ist alles möglich, auch das Gegenteil.
von André Kostolany!

  #6
OFFLINE   MANDL2007

... stelle heute abend in "Forex - Journal" beide komplette EA's mit setfile rein - da kannste Dir dann alles runterladen !

Der Gedanke gerade mit JPY Paaren gar nichts tz machen oder nur sehr vorsichtig zu arbeiten ist sicher richtig - sie neigen ja generell stärker zum trenden. Ich habe auch bei Neuauflagen einige JPY WP rausgenommen - die 3 von Dir genannten habe ich auch noch dabei !

P.S.: Meinste nanolots ? Meine Faustregel lautet jetzt (auch nach den "Erlebnissen" der letzten 3 Monate) auf 500 EUR Kapitaleinsatz kommt pro trade nur 1 Nanolot ! Bei Verwendung von 20-25 WP und einem Hebel von 1:100.
"I DO it my way !" (frei nach F.S.)
Mein EA Portfolio: http://www.stevehopw...php?f=36&t=1374 (TGTFX, TGTFX1, TGTFX2, MANDL2007)

  #7
OFFLINE   traderdoc

if (Digits == 2) multiplier = 10;100;
if (Digits == 3) multiplier = 100;1000;
if (Digits == 4) multiplier = 1000;10000;
if (Digits == 5) multiplier = 10000; 100000;

warum du nicht verwenden einfach die Mathpow Funktion, dann hast das ganze in einer zeile für alle Digits?

Völlig korrekt! Das war halt der Code wie von SH übernommen. Sicherlich kommt man mit:

multiplier = MathPow(10, Digits);

auch ans Ziel.

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #8
OFFLINE   forexler

gaz genau traderdoc, und das ist imer allgemeingültig, stell dir vor es gibt sicher bald 6 stellige broker


  #9
OFFLINE   traderdoc

forexler, Du hast ja so recht!
Dann würde die Zeile:
if (Digits == 6) multiplier = 1000000;
dazukommen! :)

traderdoc
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #10
OFFLINE   MANDL2007

so nu is abba man wieda jut ihr beeden ! kriegt euch wieda ein ...:-\

mussta euch beede imma wieda kabbeln oda watt is nu los ... kommta nich los von eenanda:-"
"I DO it my way !" (frei nach F.S.)
Mein EA Portfolio: http://www.stevehopw...php?f=36&t=1374 (TGTFX, TGTFX1, TGTFX2, MANDL2007)

  #11
OFFLINE   forexler

jo mei, wens do wor is oda? sichs net so tragisch, des paast do ollas

  • MANDL2007 gefällt das

  #12
OFFLINE   traderdoc

So, der nächste Bug, der auch nicht von der Kante zu stoßen ist, liegt in der Funktion: void JumpingStopLoss()

.....
if (Bid<= sl - ((JumpingStopPips*2)*Point) && sl<= OrderOpenPrice()){// Ask
int t = 0;// überflüssig - löschen
........// sl=sl-(JumpingStopPips*Point);
while(IsTradeContextBusy()) Sleep(100);
result = OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,CLR_NONE);
if (result)
{ ...........

Im Sell-Teil der JumpingStopLoss-Funktion fehlt die Neuberechnung des SL!!!, d.h. wenn der Ask! kleiner als der gültige SL vermindert um das Doppelte des JumpingStopPips ist, wäre kein! neuer SL berechnet wurden. Schon aufgelaufene Gewinne wären durch das Nichtnachziehen des SL bei einem Retracement wieder futsch gewesen.

Frohes Jumpen!

traderdoc


  • MANDL2007 gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #13
OFFLINE   MANDL2007

ok ... gibt es ... wann gibt es ein neues update, um den vorherigen EA zu überschreiben ? ;)
"I DO it my way !" (frei nach F.S.)
Mein EA Portfolio: http://www.stevehopw...php?f=36&t=1374 (TGTFX, TGTFX1, TGTFX2, MANDL2007)

  #14
OFFLINE   traderdoc

Die bisherigen und noch zu erläuternten Bugs sind bereits alle in der Version des ersten Posts korrrigiert!
  • MANDL2007 und fxdaytrader gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #15
OFFLINE   MANDL2007

@ traderdoc - in den post #1 von SH zu beast, beastie etc. sind genau genommen immer noch indis, templates aufgeführt - werden diese benötigt oder ist schon ALLES im EA enthalten ? Es scheint fast, als ob alles drinn wäre ?

gemeint sind diese threads:

Please Login or Register to see this Hidden Content


Please Login or Register to see this Hidden Content


"I DO it my way !" (frei nach F.S.)
Mein EA Portfolio: http://www.stevehopw...php?f=36&t=1374 (TGTFX, TGTFX1, TGTFX2, MANDL2007)

  #16
OFFLINE   traderdoc

Die Indis werden einfach so übernommen!
MA(240), Smoothed, Median Price (HL/2), Shift = 0
MA(5), Smoothed, Median Price (HL/2), Shift = 5
TMA: current timeframe, HalfLenght = 56, Price = 0, ATRMultiplier = 2.0, ATRPeriod = 100, Interopolate = true, alle alerts = false

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #17
OFFLINE   MANDL2007

ok ok das ist alles klar ... nur was ist eben mit jenen in post #1 der SH threads aufgeführten indis/templates ? Jib mal n STATEMENT ab zu der einfachen Frage: "Kann ich den EA so wie er hier in post #1 in diesem thread in FF.de angegeben ist einfach ohne jede Veränderung/Zusatz etc. auf einen frischen MT4 raufziehen und ab geht die Post ? "
"I DO it my way !" (frei nach F.S.)
Mein EA Portfolio: http://www.stevehopw...php?f=36&t=1374 (TGTFX, TGTFX1, TGTFX2, MANDL2007)

  #18
OFFLINE   traderdoc

so isses und ab geht die rote Post!
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #19
OFFLINE   MANDL2007

na gut - es ist angespannt und die Kutsche ist losgerollt ... mal schauen welches denn so die Etappenziele sein werden - die nächsten Tage, Wochen ... Monate;)

Please Login or Register to see this Hidden Content


"I DO it my way !" (frei nach F.S.)
Mein EA Portfolio: http://www.stevehopw...php?f=36&t=1374 (TGTFX, TGTFX1, TGTFX2, MANDL2007)

  #20
OFFLINE   traderdoc

Auch in der Funktion void TrailingStopLoss() ist dem SH ein Fehlerchen unterlaufen:
Für eine Sell-Order:
....
if (OrderType()==OP_SELL) {
....
if (result) {
Print("Trailing stop updated: ", OrderSymbol(), ": SL ", sl, ": Bid ", Bid);
//Force a redraw of the stop loss and hidden stop loss lines
ObjectDelete(stoplossline);
ObjectDelete(hiddenstoplossline);
if (HideTrailingStop) SetHiddenStop(OP_BUY, sl, PipsAwayFromVisualTS);//OP_SELL
}//if (result)
....

Mit der Folge, dass in der Funktion SetHiddenStop(...) der HiddenStopLoss nach den Regeln einer BUY-Order berechnet werden würde:
....
HiddenStopLoss = NormalizeDouble(price + (HiddenPips * Point), Digits);//price ist der SL und HiddenPips entspricht hier PipsAwayFromVisualTS!! - z.B. 10
....
und damit wird durch die Addition ein HiddenStopLoss berechnet, der 10 Pips über!!!! dem sichtbaren SL liegt, was bei einer Sell-Order natürlich nicht der Fall sein darf.

Wer also bei einem Sell-TrendTrade eine gestrichelte Linie über!! der SL-Linie gesehen hat, hatte sich demnach nicht verguckt, mit der Folge, dass diese HiddenStopLoss-Linie nie erreicht worden wäre, denn der SL hätte die Order vorher geschlossen.

traderdoc

  • MANDL2007 und Forex37 gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.



Similar Topics

  Thema Eröffnet von Statistik Letzter Beitrag




0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer