Jump to content
Tom Next - Daytrading Community

Codeschnipsel - Sammlung


Henrik

Recommended Posts

So, ich starte hier mal einen Thread wo alle interessanten Codeschnipsel etc. reinkönnen.

 

Ich fange mal an mit der Balanceabfrage des Accounts (Danke an den MC-Support):

initialcapital

 

 

Und hier die Equity:

 var: _equity(0); 
_equity = initialcapital + openpositionprofit + netprofit; 
if (_equity < 100000) then buy next bar market;

 

edit (14.05.2010 von mir):

Wollte gerade mit dem Code spielen und habe dabei festgestellt, das mit diesen Codewörtern NICHT die echte Balance auf dem Account gemeint ist, sondern die Balance die man in den Eigenschaften zur Strategie einstellen kann.

Der Abruf der echten Balance ist noch nicht möglich, erst in MC 7, laut TS-Team.

Link to comment
Share on other sites

Wie ist eigentlich der Code für den Big Point Value in MC?

 

BigPointValue :twiddle: Ne im ernst - das ist der Befehl der den Big Point zurückgibt.

Example

BigPointValue will return 1 for Google

BigPointValue will return 50 for E-mini S&P 500

 

Voraussetzung ist natürlich, dass es im Quote Manager vorher richtig angegeben worden ist.

Link to comment
Share on other sites

Alles klar, langsam tauchen die ziemlich in Vergessenheit geratenen Easy Language Kenntnisse wieder auf, vielleicht versuche ich mich ja irgendwann wieder als Systementwickler, zur Diversifikation wäre das vermutlich gar nicht so schlecht.
Link to comment
Share on other sites

So, ich starte hier mal einen Thread wo alle interessanten Codeschnipsel etc. reinkönnen.

 

 

Gute Idee :twiddle:

Würde mich freuen, wenn sich in der Zukunft noch mehr Multicharts Enthusiasten finden, die den Bereich durch aktive Mitarbeit supporten.

Link to comment
Share on other sites

Kurs nach Pips errechnen (für TP oder SL zB) unabhängig vom Instrument (TS support):

 

 

 

Pips * bigpointvalue*minmove/pricescale

 

Wobei Pips die Pipzahl ist und die anderen 3 Werte im Quotemanager zu dem jeweiligen Instrument hinterlegt sind.

 

Achtung: hat bei 5stelligen FX-Fairs den Nachteil, dass 1 Pip auf die 5. Stelle gerechnet wird. Bei FX also das Ganz nochmal *10 rechnen.

 

Bsp:

 

Quotemanager EUR/USD bei MBT:

bigpoinvalue = 1

minmove = 1

pricescale = 1/100000

 

Inputs:

Pips(30);

 

Im Code soll Close + TP gerechnet werden:

 

TPkurs = Pips * bigpointvalue * minmove / pricescale  {ggf. noch *10 um echte Pips herauszubekommen}

TPkurs = 30 * 1 * 1 / (1/100000)

TPkurs = 0.00003 {oder 0.0003}

 

 

Man könnte natürlich im Quotemanager den pricescale einfach auf 1/10000 stellen um sich das *10 zu sparen. Dann sieht man aber im Chart rechts leider den Kurs nur noch 4stellig statt 5stellig.

Also evtl. vorher das Instrument checken lassen durch GetSymbolName falls man eine Strategie auf zB FDAX und FXSpot laufen lassen will.

 

 

 

Oder Variante B (BigMike on TSsupportforum:

inputs: 
 target1 (20); 
 stoploss (20); 
vars: 
 TickSize (MinMove/PriceScale); 

SetStopContract; 
SetStopLoss((stoploss * TickSize) * BigPointValue); 
SetProfitTarget((target1 * TickSize) * BigPointValue);

Link to comment
Share on other sites

In auf Chart geprinteten Text eine Variable mit einbauen:

 

 

If BarNumber = 1 Then
Value1 = Text_New(Date, Time, High *1.01, "variable1"+text(var1));
Value2 = Text_SetLocation(Value1, Date, Time, High * 1.01);

 

=> setzt immer einen festen + variablen Text auf den ersten Bar.

 

Also:

"variable1"+text(var1))

variable1 ist der feste Text,

var1 ist die Variable

Link to comment
Share on other sites

  • 1 month later...

Diverse Indikatoren und Studien für Tradestation, sollte auch in MC funktionieren

 

Forums - EasyLanguage Treasure Chest

 

Und noch eine Fundgrube (zwar mehr für Metastock, aber auch jede Menge EL Geschichten)

 

http://trader.online.pl

 

Auf Easy Langugage Zone klicken, die neue Boardsoftware mag manche Links nicht, ausserdem werden beim Editieren von Beiträgen Umlaute in Fragezeichenicons umgewandelt, der Teufel steckt anscheinend im Detail.

Link to comment
Share on other sites

  • 1 year later...

John F. Ehlers 2004 // Cybernetic Analysis For Stocks & Futures

 

bzw sein Buch vorher aus 2001 : Rocket Science For Traders

 

Es finden sich EL-Code u.a. für den CoG und eine Reihe von Fisher - Indi´s

 

Ehlers & Fisher setzen auf den mathematischen Methoden der Elektrotechnik auf und verarbeiten Kurse wie die E-Technik entsprechende Signale . Von diesem Ansatz halte ich gerade im FX-Markt eine ganze Menge .

 

KB

Link to comment
Share on other sites

John F. Ehlers 2004 // Cybernetic Analysis For Stocks & Futures

 

bzw sein Buch vorher aus 2001 : Rocket Science For Traders

 

Es finden sich EL-Code u.a. für den CoG und eine Reihe von Fisher - Indi´s

 

Ehlers & Fisher setzen auf den mathematischen Methoden der Elektrotechnik auf und verarbeiten Kurse wie die E-Technik entsprechende Signale . Von diesem Ansatz halte ich gerade im FX-Markt eine ganze Menge .

 

KB

 

@KB,

 

danke fuer den Hinweis. Habe mich bislang nur rudimentaer mit Ehlers beschaeftigt und wollte dies schon lange mal vertiefen. In der Amazon-Kritik kam ein wenig der Eindruck auf, dass das neuere Buch "Cybernetic..." inhaltlich ein wenig duenn sei, da der Code fuer die Beispiele gleich fuer zwei Programmierumgebungen (EasyLanguage und eSignal) abgedruckt sei. Ich tendiere deshalb eher zum Altwerk "Rocket Science...", zumal die Inhalte der beiden Werke so unterschiedlich ja nicht zu sein scheinen...

 

Kennst Du (oder jemand anderes) beide Buecher und wie ist die Meinung dazu?

 

ciao,

zentrader

Link to comment
Share on other sites

Hallo , @zentrade : beide Bücher liegen jetzt gerade neben mir . Persönlicher Eindruck und ich habe keines der beiden Bücher wirklich durchgearbeitet :

 

Cybernetic (256 S) baut auf Rocket (250 S) auf, Teile der Codes sind beiden gemeinsam , beide Bücher bearbeiten gemeinsame Themen . Der CoG ist zum Beispiel erst im Cybernetic beschrieben .

 

Schwierig zu sagen , Rocket baut wohl mehr aus der Theorie der digitalen Signalverarbeitung heraus kommend auf , ist also etwas grundsätzlicher . Cybernetic dann etwas mehr Anwenderorientiert .

 

Hoffe hilft .

 

 

Andere Frage @all : Suche Code oder Links zum Kontomanagment/Autotrade (GetAccount, GetAccountID , siehe dort dann Post #2 )

 

KB

Link to comment
Share on other sites

Hallo , @zentrade : beide Bücher liegen jetzt gerade neben mir . Persönlicher Eindruck und ich habe keines der beiden Bücher wirklich durchgearbeitet :

 

Cybernetic (256 S) baut auf Rocket (250 S) auf, Teile der Codes sind beiden gemeinsam , beide Bücher bearbeiten gemeinsame Themen . Der CoG ist zum Beispiel erst im Cybernetic beschrieben .

 

Schwierig zu sagen , Rocket baut wohl mehr aus der Theorie der digitalen Signalverarbeitung heraus kommend auf , ist also etwas grundsätzlicher . Cybernetic dann etwas mehr Anwenderorientiert .

 

Hoffe hilft ...

 

@KB,

 

danke - ich glaube dann treffe ich die Entscheidung mal so: zuerst das aeltere Grundlagenwerk. Und wenn ich was verstanden habe, kann ich ja noch das zweite nachziehen... :-)

 

ciao,

zentrader

Link to comment
Share on other sites

  • 2 weeks later...

Weiss jemand, wie ich eine Pending Order auf dem Server meines Brokers (IB und MBT in meinem Fall) durch mein HS erkennen kann ? Ich suche einen Befehl wie "Order_ID = GetPositionPendingOrders(Symb,KnNr,lfd Nummer)" ?

 

Es geht mir darum zu erkennen, welchen Orderstatus ich habe, wenn ich mein HS neu starte . Irgenwie muss ich mein Orderbuch einlesen können .

 

Dank

 

KB

 

EDIT 2 Stunden später um 16:25 : Ich habe das jetzt eben mit dem MC support chat geklärt ==>> es gibt keine Möglichkeit , aktive Order abzufragen . KB

Link to comment
Share on other sites

  • 3 weeks later...

Durch einen Hinweis von siscop, Danke siscop! - möchte ich hier mal einen Code festhalten der im MC-Forum gepostet worden ist, damit kann man Text in Strategien darstellen:

 

Quelle: MC Forum - arnie

 

 


if currentbar = 1 then begin
  value3 = Text_new_s(JulianToDate(aiLeftDispDateTime), GetAppInfo(aiLeftDispDateTime), GetAppInfo(aiHighestDispValue),"");            
     text_setfontname(value3 , "Lucida Sans Typewriter");
     text_setcolor(value3 , white);
     text_setsize(value3 , 9);
     Text_SetStyle(value3 , 0, 0);
     text_setborder(value3 , true);
     text_setbgcolor(value3 , black);
end;

value1 = HighD(0);
value2 = LowD(0);

text_setstring(value3, " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " " + newline + 
  " DayHigh           " + spaces(1) + " -  " + NumToStr(value1, 2) + " " +  newline +
  " DayLow         " + spaces(1) + " -  " + NumToStr(value2,2) + " ");
  
Text_SetLocation_s(value3, JulianToDate(GetAppInfo(aileftDispDateTime)),DateTime2ELTime_s(GetAppInfo(aileftDispDateTime)),
  GetAppInfo(aiHighestDispValue));

  • Upvote 3
Link to comment
Share on other sites

  • 2 weeks later...
damit kann man Text in Strategien darstellen

 

Wie geht Ihr eigentlich vor, um den Überblick im Editor zu behalten ?

 

Beim Coden mit Metatrader habe ich den Code in #Include ´s unterteilt

die jeweils ein Modul abgearbeitet haben .

So konnte ich dann jedes Modul für sich individuell Coden und dann an das Hauptprogramm anflanschen .

Aber ich hatte dann jeweils nur 2...3 Bildschirmseiten mit Code . Übersichtlicher eben , so finde ich (mag Geschmackssache sein) .

 

KB

Link to comment
Share on other sites

Wie geht Ihr eigentlich vor, um den Überblick im Editor zu behalten ?

 

:hmmmm:

 

In der Zwischenzeit habe ich einen Beispielcode eines recht ausgewachsenen HS erhalten . Auch einschlägiger Literaturempfehlung folgend ist dort alles modularisiert .

Eine Funktion markiert Trades im Chart , alles andere hat der Kollege in einem einzigen Programm aneinandergereiht . Mehrfach, dem Programmfluss folgend, hat er

sowohl "Variables: ..." als auch "Input:..."-Blöcke den jeweiligen Programmmodulen zugeordnet . Ich dachte, dass wäre - wie bei MT4 - nur am Anfang des Codes möglich . Offensichtlich falsch gedacht .

 

Man kann noch Wert darauf legen, dass das Format "Druckerfreundlich" ist ... also Zeilenlänge so anpassen, dass keine unfreiwilligen Zeilenumbrüche entstehen .

Ausdrucke sind für mich nun wichtiger/hilfreicher als beim MT4 ,da der Code doch ziemlich lang werden wird .

 

KB

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...