Jump to content
Tom Next - Daytrading Community

Strategy mit Gedächtnis


Kleinerbroker

Recommended Posts

Hallo

 

noch ohne jede Coding-Erfahrung auf MC suche ich nach Befehlen, die mich Variablen aus dem automischen Handel heraus abspeichern lassen um diese zu einem späteren Zeitpunkt erneut zu laden .

 

Konkreter bzw ein mögliches Beispiel : Ich möchte den Floating Loss und Profit einzelner Trades aus der jüngeren Vergangenheit (" .. die letzten 5 Trade..") abspeichern um damit dann den TSL und TP "on the run" zu variieren . Dadurch kann ich dem nächsten Trade mitteilen, dass er im Markt bleiben darf, solange sich der Markt weiter so verhält wie es in der jüngeren Vergangenheit auch gewesen ist .

 

Nun habe ich nach Befehlen gesucht , die mich eine Datei beschreiben oder lesen lassen ...... und zwar ohne Erfolg .

 

Vermutlich habe ich etwas übersehen ?

 

Danke

 

KB

 

PS.: Export / Import / Load / Save / Get_____

Link to comment
Share on other sites

Konkreter bzw ein mögliches Beispiel : Ich möchte den Floating Loss und Profit einzelner Trades aus der jüngeren Vergangenheit (" .. die letzten 5 Trade..") abspeichern

Zum Abspeichern würde ich ein Array nutzen. Ansonsten schau dir doch mal folgende Befehle an:

 

PositionProfit

Returns a numerical value, indicating the profit or loss for the specified position.

 

Usage

PositionProfit(PosBack)

 

Where: PosBack - a numerical expression, specifying the position:

 

0 - open position;

1 - one position back (the last position closed);

2 - two positions back, etc.

 

If PosBack is not specified, a value for the open position will be returned.

 

und

 

PosTradeProfit

Returns an absolute numerical value, indicating the profit (or loss if negative) of the specified trade.

 

Usage

PosTradeProfit(PosAgo,TradeNumber)

 

Where: PosAgo - a numerical expression, specifying the position:

0 - open position;

1 - one position back (the last position closed);

2 - two positions back, etc.

TradeNumber - a numerical expression, specifying the number of trade (zero-based).

 

Als MT4-Umsteiger bitte den Unterschied zwischen Position und Trade beachten. Innerhalb einer Position können mehrere Trades stattfinden. Eine Position umfasst alle Trades seit des ersten Contracts bis der letzte verkauft wurde.

  • Upvote 3
Link to comment
Share on other sites

Hallo Rainworm

 

habe Dank für Deine Erklärungen !

 

Innerhalb einer Position können mehrere Trades stattfinden

 

"Ja, genau ! " Und genau da muss ich auch mit einer anderen Strategy aufpassen , dort muss ich Teilkäufe voneinander trennen können .

Ich glaube, dass es sich am besten als pyramidisieren bezeichnen läßt . Nur Long trade ich bei IAB den SLV (Silber ETF ) an der ARCA .

Immer lasse ich mich einstoppen und sobald ein Trade mit (zum Beispiel) 10 ETF in den Profit gekommen ist, schütze ich diesen mit einem SL und platziere die nächste Order "darüber" . Und so "stappele" ich einen Trade über dem anderen , die SL ziehe ich manuell nach Gutdünken nach, aber eben individuell für jeden dieser Trade . Läuft es gegen mich, dann warte ich "charttechnisch" ein wenig ab , belasse die aktiven Trade im floating loss und platziere den nächsten Trade . RMMM ist so, dass ich einfach Hebel 1 ansetze . Somit nutze ich die Volatilität um ein wenig Profit zu erwirtschaften . Das einzige Risk ist, dass Silber irgendwann vom Himmel fällt und den Wert von Sand annimmt . Ansonsten muss ich einfach nur abwarten können und beachten mein Pulver nie ganz zu verschiessen.

 

Das würde ich gerne automatisieren und dabei MC auf meinem "Server" nutzen . Wenn nun abgeschalten wird, dann muss ich eben die Daten der einzelnen Trade wieder finden können . Auch dazu könnte ich dann ja den Array nutzen, jede Zeile ein Trade, jede Spalte eine zugehörige Aktion .

 

Ich geh mal auf die Suche, wie man Arrays abspreichern kann .

 

Freundliche Grüße

 

KB

Link to comment
Share on other sites

So, bei Array´s bin ich nicht fündig geworden und nach Stunden weiterer Suche habe ich dann auch bei BMT und MC gepostet . Deren Antwort werde ich dann hier posten .

 

ABER

 

MT4 hat mich bei MC nach dem Keyword "File" suchen und fündig werden lassen . Es gibt bei MC drei Befehle , die einen Textfile erstellen, erweitern und löschen können . Kombiniert man das mit den verschiedenen bekannten "String"-Befehlen , dann hat man eine Lösung die vielleicht nicht elegant ist aber wirksam sein sollte .

 

KB

Link to comment
Share on other sites

 

 

MT4 hat mich bei MC nach dem Keyword "File" suchen und fündig werden lassen . Es gibt bei MC drei Befehle , die einen Textfile erstellen, erweitern und löschen können . Kombiniert man das mit den verschiedenen bekannten "String"-Befehlen , dann hat man eine Lösung die vielleicht nicht elegant ist aber wirksam sein sollte .

 

KB

 

Mit Boardmitteln geht das Auslesen leider nicht. Finde ich auch ein großes Manko. Du brauchst eine DLL die das Auslesen übernimmt.

Mehr dazu und Beispiele hier: http://www.multicharts.com/discussion/viewtopic.php?=&p=8189

  • Upvote 3
Link to comment
Share on other sites

@Henrik : Vielen Dank

 

MC support antwortete mir heute zudem mit dem Hinweis auf globale Variablen :

 

 

Yesterday we had a conversation in the Live Chat regarding the coding question. I’ve consulted with the coder and he suggested to use the Global Variable.

 

 

 

Global Variables are the external dlls that help to share the information between the charts and third party applications. The information is stored in a shared memory space. External processes can access the data in the memory for further operations.

 

 

 

Global Variables are saved even if the terminal is closed or when the lights are off. So it means that the values of the variables are stored independently.

 

 

 

From Multicharts the Global variables functionality is accessed by PowerLanguage functions. Using Global Variables it is important to determine the read-write action time because the actions are performed on the script calculation.

 

 

 

Additional info on our discussion forum (http://www.multicharts.com/discussion/ ) and here:

 

http://www.multicharts.com/discussion/viewtopic.php?t=2483

 

http://www.bigmiketrading.com/tradestation-multicharts-easylanguage-programming/3502-global-variables-gv-easylanguage-tradestation-multicharts.html

 

 

In dem Link "2483" sind im ersten Post unten drei .ZIP´s geladen, die MC erweitern . Darin enthalten u.a. auch ein Manual in dem die Funktion der Befehle etc beschrieben sind . Diese finden sich NICHT in den MC Unterlagen wie manch einer vermuten mag, der sich von MC diese Hilfe geben läßt .

 

KB

  • Upvote 3
Link to comment
Share on other sites

Hallo ,

 

im Forum von MC Forum frägt JoshM nach dem Speicherort der GlobalenVariablen .

Meine Antwort ist hoffentlich richtig , auf " C:\ADE...." und auf "C:\Program Files\TS Support\Multicharts\...." . Bislang habe ich lediglich die Manuals der 3 AddOn zur TS durchgearbeitet, die

auch mit MC verwendet werden sollen .

Tatsächlich bin ich enttäuscht darüber, das ein wertvolles (weil nicht billig) SW-Paket nicht gestattet Inhalte von Variablen standardmäßig zu speichern sondern nur mittels WorkAround .

 

Kleinerbroker

Link to comment
Share on other sites

  • 5 weeks later...

Hallo ,

 

wenn die Funktion , dass dauerhafte "Merken" von variablen Werten , mit GV´s funktioniert , dann macht es JETZT Sinn sich in MC einzuarbeiten , anderenfalls muss ich erst einmal andere Wege gehen .

 

 

Ohne weitere Umschweife und/oder auch nur ein bischen MC-Kenntnis , möchte ich auf geradem Weg direkt die I/O - Funktionalität der GV testen .

 

Also habe ich erst die ELCollection, die ADE und zuletzt die GlobalVariable2.2 installiert . Ich denke, dass ich alles richtig gemacht habe .

Mich irritierte nur, dass ich für ADE keine .dll hatte . Die vorinstallierten GV wurden automatisch beim Laden/Compilieren der neuen GlobVar gelöscht .

 

Nun habe ich ein, meiner Meinung nach , unkomplettes Bild :

 

GV_MC.png

 

Bei der Eingabe der Buchstaben "GV"(s.Bild dort dann links unten) , "EDL.." oder "ADE...." öffnet das Auswahl-Fenster , irgend etwas muss also angekommen sein .

 

1.) Aber die F1 Taste bei markiertem Befehl liefert keine Hilfe . 2.) Ausserdem werden die Befehle auch nicht im Navigator unter Funktionen angezeigt .

 

Frage : a.) Ist das normal ? b.) gibt es irgendwo im Web 5 oder 10 Zeilen Code, damit ich mal einen Wert auf der Festplatte speichern kann und von da aus dann weiter machen kann ?

 

Schlussendlich : Um mich zu versichern, dass alles OK ist, habe ich versucht den GV-DemoWorkspace zu laden . Das geht nicht, wird nicht erkannt, ist ja auch ein TSW-Format . Kann ich da etwas machen ?

 

Vielen Dank

 

KB

Link to comment
Share on other sites

So , die Zusatzbefehle aus den Erweiterungen finden sich schon in der Liste der Funktionen aber nicht in alphabetischer Reihenfolge, sondern ganz am Ende der Liste aller Funktionen .

 

Die Erweiterung besteht, wie schon erwähnt aus drei Teilen , der ELCollection (EL == EasyLanguage) , der ADE (All Data Everywhere) und der GlobalVariables 2.2 .

 

Mit Sicherheit sind die Befehle

 

"Value1 = ListC.ReadFile(ListN_ID,"C:\InputFile.txt");"

und

"Value1 = ListN.WriteFile(ID, FileName);"

 

für mich der Bereich , auf den ich mich konzentrieren muss .

 

In den beiden anderen Erweiterungen habe ich heute nachmittag nichts weiter gefunden . Ich werde mir nun im Laufe der Woche ein kleines Programm schreiben, dass einfach

nur ein paar Zahlen speichert und wieder laden kann, nachdem MC neu gestartet wurde . Wenn das klappt, dann habe ich auch ein Gedächtnis für MC .

 

Wir werden es sehen .

 

KB

PS.: Admins : könntet Ihr bitte Post#9 und #10 löschen ? Sogar der Code von BMT ist falsch, den Befehl "load_global_data" gibt es mindestens bei MC aber auch laut Google in der EL/Tradestation nicht . Danke

Link to comment
Share on other sites

Mit Sicherheit sind die Befehle

 

"Value1 = ListC.ReadFile(ListN_ID,"C:\InputFile.txt");"

und

"Value1 = ListN.WriteFile(ID, FileName);"

 

für mich der Bereich , auf den ich mich konzentrieren muss .

 

Oh, schön, danke für die Info! halte uns auf dem laufenden!

 

 

 

PS.: Admins : könntet Ihr bitte Post#9 und #10 löschen ? Sogar der Code von BMT ist falsch, den Befehl "load_global_data" gibt es mindestens bei MC aber auch laut Google in der EL/Tradestation nicht . Danke

 

*done*

Link to comment
Share on other sites

Inputs: FileName ( "C:\ADE\Data\My_Memory.txt" );// File location

Vars: DataMap(ListN.New)                        ,// Create List of numeric values named "Datamap"
     Ergebnis (0)                              ,// Variable for the content || result
     Counter(0)                                ;// just to count up

Counter = Counter+1 				      ;// Barcounter one up (for debugg only)
     
if CurrentBar > 1 then begin                     // all bars in chart but the current
  if ELC.PathExists(FileName) then begin        // in case file is found
       value1 = ListN.ReadFile(DataMap, FileName);// read file into list "DataMap"
       Ergebnis = ListN.Get(DataMap,1)           ;// pick first data in list and make it Ergebnis
       Print (Counter, " Gefunden = ",Ergebnis);// print it for debugging only
     end                                        //
  else                                          //
     print ( Counter , "Kein File vorhanden")  ;// File not found
  end                                          ;//
value1 = ListN.Clear(DataMap)                   ;// Clear List and free memory

 

Dieser Code liest aus einer Datei "My_Memory" numerische Daten aus . Mit leichten Veränderungen lassen sich auch String´s und Mischungen auslesen .

Die Ausgabe erfolgt in diesem Code lediglich im Output-Fenster des Editor .

Für diese Funktionalität sind lediglich ELCollections (ELC) nötig, ein schlecht verständliches Word-Manual ist dabei . Schlecht , weil nicht ein lausiges komplettes Beispiel beigefügt wurde . Egal .

Dafür bietet ELC allen Schnick und allen Schnack um Tabellenarbeiten inklusive R&W zu erledigen .

 

Und damit hat der kleine Broker ein Lösung gefunden, um mit MC eine Strategie mit Gedächtnis in Angriff zu nehmen .

 

Ein dickes Dank dem Rainworm, der mich zu einem erneuten Versuch via PN sehr freundlich ermutigt und mit einem tollem Link unterstützt hat . :wub: :Howdy:

 

Dadurch habe ich mir arg viel Geld gespart ! :door:

 

Kleinerbroker

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