Jump to content


Photo

Strategy mit Gedächtnis


Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.

  • Please log in to reply
10 replies to this topic

#1 Kleinerbroker

Kleinerbroker

    Floor Broker

  • Validating
  • PipPipPipPipPipPip
  • 1,504 posts
  • 9806 thanks
  • Wohnsitz:BW

Posted 17 December 2011 - 04:27 AM

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_____
  • 0
Do not trade alone

Thanked by 10 Members:
siscop , oldschuren , whipsaw , cxalgo , ronner , RAiNWORM , Licens , Henrik , WOGO , Vola

#2 RAiNWORM

RAiNWORM

    Floor Broker

  • Developer
  • 909 posts
  • 6489 thanks
  • Wohnsitz:NRW

Posted 17 December 2011 - 05:51 PM

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.
  • 3
Wer in die Fußstapfen eines anderen Tritt, wird niemals überholen...

Thanked by 9 Members:
siscop , oldschuren , whipsaw , cxalgo , ronner , Henrik , Vola , Licens , Kleinerbroker

#3 Kleinerbroker

Kleinerbroker

    Floor Broker

  • Validating
  • PipPipPipPipPipPip
  • 1,504 posts
  • 9806 thanks
  • Wohnsitz:BW

Posted 17 December 2011 - 06:32 PM

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
  • 0
Do not trade alone

Thanked by 8 Members:
siscop , oldschuren , whipsaw , cxalgo , Licens , RAiNWORM , Vola , ronner

#4 Kleinerbroker

Kleinerbroker

    Floor Broker

  • Validating
  • PipPipPipPipPipPip
  • 1,504 posts
  • 9806 thanks
  • Wohnsitz:BW

Posted 18 December 2011 - 07:23 PM

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
  • 0
Do not trade alone

Thanked by 9 Members:
siscop , oldschuren , whipsaw , RAiNWORM , Licens , cxalgo , Henrik , Vola , ronner

#5 Henrik

Henrik

    Floor Broker

  • Moderatoren
  • 4,976 posts
  • 21566 thanks
  • Wohnsitz:Bbg, GER

Posted 18 December 2011 - 11:14 PM

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.multichar...ic.php?=&p=8189
  • 3
"Weder die stärkste noch die intelligenteste Spezies überlebt. Sondern jede, die sich am besten dem Wandel anpasst."
Charles Darwin
 
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren."
Benjamin Franklin

Thanked by 10 Members:
siscop , oldschuren , whipsaw , RAiNWORM , ronner , Licens , cxalgo , Kleinerbroker , Vola , WOGO

#6 Kleinerbroker

Kleinerbroker

    Floor Broker

  • Validating
  • PipPipPipPipPipPip
  • 1,504 posts
  • 9806 thanks
  • Wohnsitz:BW

Posted 20 December 2011 - 09:30 PM

@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
  • 3
Do not trade alone

Thanked by 10 Members:
siscop , oldschuren , whipsaw , RAiNWORM , Licens , Henrik , cxalgo , WOGO , ronner , Vola

#7 Kleinerbroker

Kleinerbroker

    Floor Broker

  • Validating
  • PipPipPipPipPipPip
  • 1,504 posts
  • 9806 thanks
  • Wohnsitz:BW

Posted 24 December 2011 - 01:27 PM

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
  • 0
Do not trade alone

Thanked by 9 Members:
cxalgo , siscop , oldschuren , whipsaw , Licens , Henrik , RAiNWORM , Vola , ronner

#8 Kleinerbroker

Kleinerbroker

    Floor Broker

  • Validating
  • PipPipPipPipPipPip
  • 1,504 posts
  • 9806 thanks
  • Wohnsitz:BW

Posted 22 January 2012 - 03:18 PM

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 :

Attached File GV_MC.png   406.43K  119 downloads

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
  • 0
Do not trade alone

Thanked by 9 Members:
cxalgo , siscop , Licens , oldschuren , RAiNWORM , Henrik , whipsaw , WOGO , Vola

#9 Kleinerbroker

Kleinerbroker

    Floor Broker

  • Validating
  • PipPipPipPipPipPip
  • 1,504 posts
  • 9806 thanks
  • Wohnsitz:BW

Posted 22 January 2012 - 09:11 PM

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

  • 0
Do not trade alone

Thanked by 8 Members:
cxalgo , ronner , siscop , Henrik , RAiNWORM , Licens , WOGO , Vola

#10 Henrik

Henrik

    Floor Broker

  • Moderatoren
  • 4,976 posts
  • 21566 thanks
  • Wohnsitz:Bbg, GER

Posted 24 January 2012 - 11:07 AM

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*
  • 0
"Weder die stärkste noch die intelligenteste Spezies überlebt. Sondern jede, die sich am besten dem Wandel anpasst."
Charles Darwin
 
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren."
Benjamin Franklin

Thanked by 9 Members:
cxalgo , RAiNWORM , Kleinerbroker , ajkonly , ronner , WOGO , Licens , siscop , Vola

#11 Kleinerbroker

Kleinerbroker

    Floor Broker

  • Validating
  • PipPipPipPipPipPip
  • 1,504 posts
  • 9806 thanks
  • Wohnsitz:BW

Posted 26 January 2012 - 09:06 PM

Inputs: FileName ( "C:\ADE\Data\My_Memory.txt" );// File locationVars: DataMap(ListN.New)                        ,// Create List of numeric values named "Datamap"      Ergebnis (0)                              ,// Variable for the content || result      Counter(0)                                ;// just to count upCounter = 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
  • 0
Do not trade alone

Thanked by 7 Members:
Henrik , Licens , cxalgo , ajkonly , ronner , RAiNWORM , Vola

Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users