Jump to content
Tom Next - Daytrading Community

Projekt: Entwicklung Community-EA


Wir bauen ein TomNext EA für Metatrader  

60 members have voted

  1. 1. Besteht Interesse zusammen ein EA zu bauen für Metatrader??



Recommended Posts

Da soviel weitergeht, hab ich mir den EA nochmal durchforstet, und folgende Probleme Herausforderungen festgestellt:

  • derzeit wird Point verwendet wodurch das Parameterset nicht einfach zwischen 4 und 5 digits-broker gewechselt werden kann (wird von mir geändert)
  • es gibt keine Möglichkeit den EA auf einem Broker laufen zu lassen der beim Senden der Order keine SL und TP zulässt (abhandlung dieses Problems bau ich in die TradeBox ein, also auch erledigt)
  • Die Zeit für die Tradingeinschränkung gilt derzeit als Serverzeit. Das führt wieder dazu, dass das gleiche Parameterset auf unterschiedlichen Brokern unterschiedlich läuft. Das sollten wir besser auf TimeLocal anpassen oder? Zeitfilter referenzieren mMn eher auf die eigene Zeit als auf die Serverzeit...

Was meint ihr?

Link to comment
Share on other sites

Da soviel weitergeht, hab ich mir den EA nochmal durchforstet, und folgende Probleme Herausforderungen festgestellt:

  • derzeit wird Point verwendet wodurch das Parameterset nicht einfach zwischen 4 und 5 digits-broker gewechselt werden kann (wird von mir geändert)

 

jupp, sollte man mit reinnehmen, dass der EA automatisch zwischen 4- und 5 Digits wechselt

 

  • es gibt keine Möglichkeit den EA auf einem Broker laufen zu lassen der beim Senden der Order keine SL und TP zulässt (abhandlung dieses Problems bau ich in die TradeBox ein, also auch erledigt)

 

Einfach einen bool einbauen "if ECN/STP = true" dann erst Order ohne SL&TP setzen, dann per modify

 

  • Die Zeit für die Tradingeinschränkung gilt derzeit als Serverzeit. Das führt wieder dazu, dass das gleiche Parameterset auf unterschiedlichen Brokern unterschiedlich läuft. Das sollten wir besser auf TimeLocal anpassen oder? Zeitfilter referenzieren mMn eher auf die eigene Zeit als auf die Serverzeit...

 

sowas in der Art?

 

bool f_checkTime()
{
  bool result;
  double Start=Start_H+Start_M/60;
  if(Start>=24) Start-=24;
  double Ende=Stop_H+Stop_M/60;
  if(Ende>=24) Ende-=24;
  double stunde = Hour();
  double minute = Minute();
  double timeSplit = stunde+minute/60;  
  if(Start<Ende){
     if(timeSplit>=Start && timeSplit<=Ende)    result=true;
     else result=false;
  }
  else {
     if(timeSplit>=Start || timeSplit<=Ende)    result=true;
     else result=false;
  }
  return(result);   
}

 

Was meint ihr?

 

wäre sehr hilfreich, auf alle Fälle!

  • Upvote 1
Link to comment
Share on other sites

es gibt keine Möglichkeit den EA auf einem Broker laufen zu lassen der beim Senden der Order keine SL und TP zulässt (abhandlung dieses Problems bau ich in die TradeBox ein, also auch erledigt)

Wenn du das drin hast, könnte ich flatex als weiteren Testbroker 24/7 laufen lassen. Die restlichen Broker dieser Welt habt ihr ja schon :wink2: Hat jemand einen MBT-MT4-Account? Das wäre doch auch noch von Interesse.

 

Die Zeit für die Tradingeinschränkung gilt derzeit als Serverzeit. Das führt wieder dazu, dass das gleiche Parameterset auf unterschiedlichen Brokern unterschiedlich läuft. Das sollten wir besser auf TimeLocal anpassen oder? Zeitfilter referenzieren mMn eher auf die eigene Zeit als auf die Serverzeit...

Das halte ich auf jeden Fall für sinnvoll.

 

cxalgo hat heute wohl Steroide genommen und haut flott in die Tasten :palomitas:

 

per decompileschutz wäre eine Möglichkeit, nur noch die ex4 hinterlegen

Tja, wie wollen wir einen EA schützen, den wir zu Bildungszwecken hier als Quellcode veröffentlichen? Ein Schutz kommt jetzt eh zu spät. Außerdem kann man alles dekompilieren und jeglichen Schutz umgehen. Das ist den Aufwand nicht wert.

Link to comment
Share on other sites

Bei Pepperstone kommt immer dieser Fehler aus der TradeBox

 

ITradeBox EURUSD,M15: Alert: TB1.19: Give up after 51 tries to send Order: buy 0.71@1.3184sl:1.3166tp:1.3284 error was: invalid stops

 

 

kommt mit dem Community EA + gleichem Set-File nur bei Pepperstone, hab da den Razor Account per MT4 Equity Grid laufen

 

hier die Symbol Eigenschaften per Screenshot

TNCEA.png

Link to comment
Share on other sites

Bei Pepperstone kommt immer dieser Fehler aus der TradeBox

 

Ich vermute der kann auch keine SL und TP beim Senden.

Versuch mal eine Marketorder händisch zu setzen mit SL und TP direkt. An dem Problem bin ich dran, kommt demnächst.

 

EDIT: da du schon trades hast, hat der Broker auch eine andere TimeZone als der auf dem ich getestet hab... sprich wir sollten die TimeFilter definitiv auf local setzen, hilft zwar im backtest nit, aber sonst wirds kompliziert...

 

EDIT2: man sollte nicht nur den letzten neuen Post lesen... :white_flag: ich bau mal

Link to comment
Share on other sites

Ich vermute der kann auch keine SL und TP beim Senden.

Versuch mal eine Marketorder händisch zu setzen mit SL und TP direkt. An dem Problem bin ich dran, kommt demnächst.

 

 

jupp, so ist es, muss in 2 Schritten erfolgen

 

 

EDIT: da du schon trades hast, hat der Broker auch eine andere TimeZone als der auf dem ich getestet hab... sprich wir sollten die TimeFilter definitiv auf local setzen, hilft zwar im backtest nit, aber sonst wirds kompliziert...

 

korrekt

 

@rainworm

cxalgo hat heute wohl Steroide genommen und haut flott in die Tasten

hab heute scheinbar einen guten Tag erwischt und der Kaffee fließt seit 5 Uhr morgens in strömen ghey.gif

Link to comment
Share on other sites

sowas in der Art?

 

naja, es geht nicht um die Verarbeitung der Zeit. Das Problem ist, das zB mein Broker hier TimeCurrent() = TimeLocal() - 1Stunde hat.

Zweites Problem: Beim Backtest wird TimeLocal mit TimeCurrent überschrieben, sprich man muss höllisch aufpassen das man im Backtest die Zeitwerte entsprechend anpasst...

 

@kopierschutz: wir wollen ja keinen Kopierschutz in dem Sinn, denn es is ja opensource. Aber so wie alle OpenSource Programme, haben wir das Problem das: "Wie schützen damit niemand unseren EA in seinem Namen verkauft?".

AFAIR gabs mal den fall wo der gcc (OpenSource Compiler) in kommerzieller Software aufgrund von bekannten Bugs des gcc identifiziert wurde... Ansonsten hast defakto keine Chance da was nachzuweisen.

Link to comment
Share on other sites

@kopierschutz: wir wollen ja keinen Kopierschutz in dem Sinn, denn es is ja opensource. Aber so wie alle OpenSource Programme, haben wir das Problem das: "Wie schützen damit niemand unseren EA in seinem Namen verkauft?".

AFAIR gabs mal den fall wo der gcc (OpenSource Compiler) in kommerzieller Software aufgrund von bekannten Bugs des gcc identifiziert wurde... Ansonsten hast defakto keine Chance da was nachzuweisen.

 

gute Frage, einen individuellen anti-P.H.-Gentest per Script gibts ja wahrscheinlich (noch) nicht, muss erst der Schaden den er anrichtet in Größen eines Herrn Schneider gehen!! punishR.gif

 

Sonst geht hier nur auf "treu & glauben" weil Source bleibt Source ... oder per dll was auslagern ....

Link to comment
Share on other sites

Da soviel weitergeht, hab ich mir den EA nochmal durchforstet, und folgende Probleme Herausforderungen festgestellt:

    [*] derzeit wird Point verwendet wodurch das Parameterset nicht einfach zwischen 4 und 5 digits-broker gewechselt werden kann (wird von mir geändert)

Das habe ich schon mal gebaut. Sah dann so aus:

if (MarketInfo(Symbol(), MODE_DIGITS)==4) Faktor=1;
if (MarketInfo(Symbol(), MODE_DIGITS)==5) Faktor=10;

 

Faktor ist dabei eine Variable vom Typ integer. Ich habe es so gemacht, damit der Nutzer dann immer alle Werte in Pip eingeben kann. Diese werden dann intern - eben per Faktor - noch entsprechend hochgerechnet. Sicherlich würde Mythos das auch mit verbundenen Augen hinbekommen und eleganter ist auch eine Lösung mit der case-Anweisung, aber nun konnte ich zumindest auch mal einen klitzekleinen Code-Teil posten :wink:.

  • Upvote 2
Link to comment
Share on other sites

Das habe ich schon mal gebaut. Sah dann so aus:

 

thx, aber dafür gabs in der TB schon eine Funktion (wir ham sie nur nit verwendet):

 

double tbPoint() {
  if (Digits==5 || Digits ==3 || Digits == 1) 
    return(Point*10);
  else 
    return(Point);
}

 

Hotfix ist im Downloadmodul. Achtung ihr braucht auch die aktuelle TB (is auch online), damit das ECN-prob auch gelöst ist.

Ich hoff ich hab auf die schnelle nicht mehr Fehler als Verbesserungen eingebaut...

Ich hab auch noch optische Marker eingebaut das man sieht wenn der EA handeln darf und wie der Filter gerade steht. Kann per DrawObjects ausgeschaltet werden. NoStopOnSend entscheided ob SL und TP beim senden mitgeht oder erst per Modify direkt danach.

 

neues set:

goldesel.txt

 

gute Frage, einen individuellen anti-P.H.-Gentest per Script gibts ja wahrscheinlich (noch) nicht, muss erst der Schaden den er anrichtet in Größen eines Herrn Schneider gehen!! punishR.gif

 

Sonst geht hier nur auf "treu & glauben" weil Source bleibt Source ... oder per dll was auslagern ....

 

Eben, jeder Kopierschutz baut auf "ich versteck den Source". Das hilft eigentlich auch nicht gegen Klau und Verkauf und falschem Namen, aber ist dann offensichtlicher.

 

Da wir aber den Source zeigen wollen, bleibt nur der Einbau "versteckter" Fehler oder Details die ein unkundiger übersieht und die man nachweisen kann.

Dank TB müsste man den EA zerlegen und umbauen damit die raus kommt. So ein verstecktes Detail müsste also tief in der Logik sein, sodass der EA ohne es nicht richtig läuft, es aber trotzdem ohne Sourcecode beweisbar ist.

 

Aber genau genommen: Derzeit ist mir der Aufwand sowas zu entwickeln die Sache nicht wert. Weil 100% Schutz hat man eh nie.

 

EDIT: ich hab die fxBook Links ins Downloadmodul dazugepackt. Wenns weitere gibt, bitte einfach melden.

Link to comment
Share on other sites

ich werfe nochmal eine Backtest Optimierung an für alle 5 Konten, da auf jedem ein anderes negatives Ergebnis angezeigt wird, schon seltsam, PF 0,7 - 1.1 ...

 

Wenn alle fertig sind, stelle ich die als Report hier mal rein

 

Für welchen Zeitraum? Du musst mit den Zeiten aufpassen, im Backtest nimmt er eine andere Zeit als im Live, da musst ggf. für den Backtest umstellen.

Link to comment
Share on other sites

Für welchen Zeitraum? Du musst mit den Zeiten aufpassen, im Backtest nimmt er eine andere Zeit als im Live, da musst ggf. für den Backtest umstellen.

 

hab jetzt mal alle per 01.01.2011 Start und 01.01.2012 Ende für die Optimierung gesetzt und per Script, nimmt er immer local time von meinen Servern

 

hab in allen Instanzen, die gleichen Tickdaten mit gleichem Datum importiert, dass jede Plattform die gleiche Basis hat nutcracker.gif

 

Also 15-20 Instanzen würde der Server (Blades reinhängen) noch packen, siehe hier:

 

vor der Optimierung der 5 Instanzen: Bild 1

alle 5 Instanzen Optimierung laufen: Bild 2

foroptimierung.png

beioptimierung.png

Link to comment
Share on other sites

Respekt. Lass mich raten du hast TimeLocal() ersetzt? Oder is das Script richtig rocket science?

 

Marke Eigenbau und noch in der Beta. Hab quasi ne kleine Liste wo alle MT4 Instanzen drin sind und einen sauberen Satz Backtesthistorien mit Datum und Volumen, per Knopfdruck werden die gleich auch auf alle neuen Instanzen gezogen,

recht praktisch für Backtests. Für den Forwardtest sollten wir das Script aber anpassen für Localtime, damit alle zur ca. gleichen Zeit ordern gossip.gif

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...