Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MQL Library mit Standardfunktionen

Geschrieben

Soda, ich start hier einfach mal das Projekt "StandardLib". Sobald ein Admin den Upload freischaltet gibts meine kleine Lib mit sage und schreibe 2 Funktionen im Downloadbereich einfach mal als Diskussionsgrundlage.

 

SVN halte ich für sinnvoll, aber ich denke, der Download-Bereich sollte es auch tun und mehr Leute verstehen es auch, zumal es auch nicht so hoch frequentiert ist (oder wie der Chef immer so schön sagt: "Hier bei tom-next ticken die Uhren langsamer"). Es wird wahrscheinlich darauf hinauslaufen, dass jeder so "sein Baby" hat und die anderen es lediglich testen und eventuell Bugs rückmelden.

 

Ich denke mit SVN wirds erst sinnvoll wenn wir wirklich mehrere Coder sind die daran arbeiten. Solange nur eine handvoll dran arbeitet könnts mit einem file klappen.

 

Vor allem dürfte das Hauptziel mal sein die notwendigen Funktionen zu finden.

Wie ich das bis jetzt sehe, haben wir hier viele "Betatester" die wissen was es können soll und ein paar coder, die das dann produzieren.

 

Also: Was soll in so eine Standardlib rein? Was codet ihr immer wieder und denkt euch jedesmal "das hab ich doch schon mal geschrieben"?

 

Kurz was schon drin ist:

TBOrderSend: Als Extension zu OrderSend. TBOrderSend kann man die "rohen" Werte geben und es gleich diese "sinnvoll" an die notwendige Genauigkeit an (also rundet Preise zum nächsten vollen Tick auf oder ab, gleicht die Lotsize an etc.) Passt auch Stops und TPs an falls sie zu nah am Entryprice liegen (anhand der Stoplevel vom MArketINfo). Zusätzlich noch eine Überprüfung der Expiration auf sinnhaftigkeit und schickt dann die Order los.

Kommt trotzdem ein Error versucht er es immer wieder mit kleinem Errorhandling: Requote und Wartezeit bei Serverbusy... Im Erfolgsfall retouniert sie das OrderTicket, sonst den negativen Fehlercode.

 

TBOrderModify macht im Prinzip das gleiche nur für OrderModify (und noch nicht wirklich kommentiert)

 

zur Namensgebung: ich hab sie TradeBox genannt und deswegen alle Funktionen daraus mit dem Präfix TB versehen.

 

Und ja, beim coden ist mein Englisch teils unter aller Sau ;)

  • Antworten 108
  • Aufrufe 1,8Tsd
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Most Popular Posts

  • Freut mich wenn dir die Tradebox hilft.   für alle Funktionen wirds eine lange liste. Am Anfang der TradeBox is eine lange Liste mit allen vorhandenen Funktionen. Zum Code, deiner ist fast korrekt (es

  • Zum lösen des Problems bin ich offensichtlich zu spät, aber die Frage kann ich beantworten ;) Es gibt grundsätzlich den Unterschied zwischen include und import:   Bei include holt sich der Compiler zu

  • // Copyright (C) 2009 // Markus Kuegerl <kuegerl.markus@gmx.net> // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are per

Veröffentlichte Bilder

Featured Replies

Geschrieben
  • Autor
Danke die Library. Ich habe sie nach libraries kopiert und in mqh umbenannt.

Anders hat er sie nicht gewollt und so stand es in der Hilfe. Hoffe, dass ist so korrekt.

 

Leider nein. Eine library ist keine include datei.

Einbinden der der TradeBox(exemplarisch):

#import "lTradeBox.ex4"
 int tbSendOrder(string symbol,int cmd,double volume,double price,int slippage,double stoploss,double takeprofit, string comment,int magic, datetime expiration,int max_retries);
 void tbSetInformationLevel(int val);
 double tbGetVersionNumber();
#import

Hier müssen alle Funktionen angegeben werden, die aus der lib verwendet werden. (Im Header der Tradebox stehen alle vorhandenen Funktionen)

 

Wenn du sie als mqh einbindest, wird sie Teil vom Programmcode. Dann sind alle Funktionen, globale Variablen etc. teil des EAs (und da ich im Header der lib sage "#property library" denkt er auch noch, das dein EA jetzt eine lib ist ;).

 

Eine library hat aber den Vorteil, das jedes Modul das sie lädt (also in deinem Fall nur der EA) eine eigene Kopie davon öffnet, die globalen Variablen in der lib sind dann also werte der "lokalen" lib. und jedesmal beim laden der lib wird die init() der lib aufgerufen. Vorteil ist auch: wenn wir einen Fehler in der TradeBox finden, oder sie erweitern, muss nicht jeder EA der sie verwendet neu kompiliert werden, sondern nur die lib, und diese wird dann einfach vom ea geladen.

 

das sollte die Fragen wegen Parameter, init() etc beantworten.

 

Ich habe noch eine Frage bzgl. der Codezeile

#import "stdlib.ex4"
 string ErrorDescription(int error_code);

 

Warum muss ich die Funktion separat importieren und kann nicht die .mqh Datei includen?

Die lib weiß ja nicht was du im EA inkludierst. Ich könnte natürlich auch in der lib die mqh includen, aber da steht auch nix anderes drin, und ich seh lieber im code, welche Funktionen ich importiere ;)

 

Eine Funktion um zu bestimmen, ob ein neuer Tag angefangen wäre auch schön :-)

Und zwar unabhängig von EA oder Indikator, wenn das geht.

 

Werds auf die TODO liste setzen ;)

 

mfg mythos

 

EDIT: beispielcode korrigiert

Geschrieben

Ich musste letztens auch mal was zum Thema mqh suchen. Dabei bin ich in der Codebase auf diesen Artikel gestoßen, der sich mit dem MT Filesystem auseinandersetzt.

 

File System

The client terminal recognizes program types by their location in subordinate directories.

 

http://book.mql4.com/metaeditor/files

 

 

 

Vermutlich wurde er bereits gepostet.

Geschrieben

Durch einen OrderClose-Fehler bin ich gerade einen Weg am implementieren, der auch dabei in

einer Schleife solange versucht, die Order zu schließen, bis es gelingt. Denn das ist ja beinahe

noch wichtige als das Öffnen. So etwas könnte man doch auch in die TradeBaox aufnehmen :pfue:

Geschrieben
  • Autor
Durch einen OrderClose-Fehler bin ich gerade einen Weg am implementieren, der auch dabei in

einer Schleife solange versucht, die Order zu schließen, bis es gelingt. Denn das ist ja beinahe

noch wichtige als das Öffnen. So etwas könnte man doch auch in die TradeBaox aufnehmen :pfue:

 

OrderClose gibt es ja schon, müsste aber ehrlich gesagt nachsehen wie sehr ich das Errorhandling schon eingebaut hab ;)

Geschrieben
OrderClose gibt es ja schon, müsste aber ehrlich gesagt nachsehen wie sehr ich das Errorhandling schon eingebaut hab ;)

 

Hm ... ok, ich hatte anfangs nur die 1.03 Version runtergeladen, warum auch immer.

Jetzt habe ich die neueste genommen von:

 

Library mit Standardfunktionen TradeBox.mq4 31st January 2009 - 11:09 PM Download

 

Hier ist aber nur die 1.04 drinnen. Sehe ich die 1.06 nicht?

Sorry für das Missverständnis...

Geschrieben
  • Autor
Hm ... ok, ich hatte anfangs nur die 1.03 Version runtergeladen, warum auch immer.

Jetzt habe ich die neueste genommen von:

 

Library mit Standardfunktionen TradeBox.mq4 31st January 2009 - 11:09 PM Download

 

Hier ist aber nur die 1.04 drinnen. Sehe ich die 1.06 nicht?

Sorry für das Missverständnis...

 

Die aktuellste Version ist über "Download starten" erreichbar, das darunter ist die History von dem File... (soweit ich das bis jetzt verstanden habe)

Geschrieben
Die aktuellste Version ist über "Download starten" erreichbar, das darunter ist die History von dem File... (soweit ich das bis jetzt verstanden habe)

 

Ok, zweimal nachdenken hätte also geholfen. Jetzt muss ich wieder etwas Posten,

damit ich wieder downloaden darf ...

Geschrieben
ich schau mal wie man die Sprache herrausbekommt...
perfekt! :pfue:

 

Ermitteln mit Hilfe der WinApi die in MT4 eingestellte Language.

MetaTrader 4 speichert manche Settings(Unter anderem die Sprache) in der Windows Registry.

 

Der Script liest die Metatrader 4 Settings>Language aus der Windows Registry.

 

bullet_go.png

#include <WinUser32.mqh>

#import "advapi32.dll"
  int RegOpenKeyA(int hKey, string lpSubKey, int& phkResult[]);
  int RegQueryValueExA(int hKey, string lpValueName, int lpReserved, int& lpType[], string lpData, int& lpcbData[]);
  int RegCloseKey(int hKey);
#import

#define HKEY_CURRENT_USER 0x80000001

//+------------------------------------------------------------------+
//| script program start function									|
//+------------------------------------------------------------------+
void start()
{

if(IsDllsAllowed()==false)
{
 Alert("DLL call is not allowed. Script cannot run.");
 return(0);
}


  string lpSubKey = "Software\\MetaQuotes Software\\MetaTrader 4\\Settings";
  string lpValueName = "Language";
  string lpData = "													   ";
  
  int hKey[1], lpType[1], lpcbData[1];
  
  if (RegOpenKeyA (HKEY_CURRENT_USER, lpSubKey, hKey) == 0)
  {
  lpcbData[0] = StringLen(lpData);
  
  if (RegQueryValueExA (hKey[0], lpValueName, 0, lpType, lpData, lpcbData) == 0)
  {
	 if (lpType[0] == 1 || lpType[0] == 2 || lpType[0] == 7)
	
		MessageBox("MetaTrader 4 Language = "+lpData, "Information", MB_OK);

		 

  }
  RegCloseKey (hKey[0]);
  }
}

Capture_095.gif

Geschrieben
  • Autor
Ermitteln mit Hilfe der WinApi die in MT4 eingestellte Language.

MetaTrader 4 speichert manche Settings(Unter anderem die Sprache) in der Windows Registry.

 

Hmm, bei mir nicht... Frag mich nicht warum, aber der Reg Eintrag von MT hat keinen Language Key...

 

Korrektur: Jetzt schon... der Eintrag ist erst da, wenn er einmal vom User gesetzt wird. Bleibt man bei der Standardeinstellung, so gibt es noch keinen Eintrag in der Registry...

  • 2 Wochen später...
Geschrieben
  • Autor

Hab mich wieder effektiv vom lernen abgehalten...

(und damit die lib wieder als erstes in der MT Kategorie aufscheint ;)

 

Es gibt jetzt ein TrailingStop Modul, das "selbstständig" einen parabolic trailingstop durchführt.

 

desweiteren hab ich mal angefangenen ein MoneyManagement Module einzubauen, das einmal initialisiert wird, und dann für gegebenes Risiko die passende LotSize rausspuckt.

 

Derzeit gibts "fixedMoney", "fixedPercent" und "ThresholdPercent" ... bin aber noch am experimentieren ob das wirklich was bringt ;)

 

freu mich wie immer über bugreports, anregungen etc.

und sonst danke fürs mitlesen ;)

Geschrieben

Dank Mythos. Sehr gute Arbeit. Auch wenn ich noch keine Trailing-Stopps verwende ...

Allerdings funktionieren die bisherigen Funktionen wie gewohnt, bis auf den Fehler,

dass Orders manchmal unter gewissen Umständen nicht eröffnet werden können.

 

Nach X Retries bricht er ab, obwohl m.E. der StopLevel richtig gesetzt ist. Der Fehler

ist ein 130er, der besagt eben dies .... komisch ... werde es nochmal posten ... wenn

es akut auftritt.

Geschrieben
  • Autor
Dank Mythos. Sehr gute Arbeit. Auch wenn ich noch keine Trailing-Stopps verwende ...

Allerdings funktionieren die bisherigen Funktionen wie gewohnt, bis auf den Fehler,

dass Orders manchmal unter gewissen Umständen nicht eröffnet werden können.

 

Nach X Retries bricht er ab, obwohl m.E. der StopLevel richtig gesetzt ist. Der Fehler

ist ein 130er, der besagt eben dies .... komisch ... werde es nochmal posten ... wenn

es akut auftritt.

 

Also ein Problem in OrderSend? Mit TP und SL definiert? welcher Ordertyp?

Geschrieben
Also ein Problem in OrderSend? Mit TP und SL definiert? welcher Ordertyp?

 

Ich sage später noch genauer, um was es sich handelt. Muss erst mal zu nem Termin,

dann nach hause, dann zum Sport und es dann reproduzieren :wub:

  • 3 Wochen später...
Geschrieben

Das OrderSend - Problem konnte ich bisher nicht reproduzieren. Ich erhalte aber bei Einsatz eines TargetProfits merkwürdige Ergebnisse.

 

Die von MT mit gelieferte OrderSend-Funktion scheint korrekt zu laufen. Wenn ich aber ein TP über die TradeBox

mitgeben, dann setzt er mir immer 2-3 Pips, GBPUSD oder EURUSD, weiter des TargetProfit.

 

Mein Code ist folgender:

 

Print ("XXX - rangeBreite= ",rangeBreite);	 // bspw. 0.0050
if (TargetProfit) 
  targetProfit = Ask + rangeBreite;
else
  targetProfit = 0;  

// mögliche Lotsize berechnen	  
lotSize = calculateLotSize (RisikoInProzent, 20);		   

// klappt:  orderTicket = OrderSend (Symbol(), OP_BUY, lotSize, Ask, 3, initialStop, targetProfit, getOrderComment(), MAGIC_NUMBER);
orderTicket = tbSendOrder (Symbol(), OP_BUY, lotSize, Ask, 3, initialStop, targetProfit, getOrderComment(), MAGIC_NUMBER, 0, 5);

 

Die Ausgabe der rangeBreite stimmt. Wenn ich die Order mit TP von 0 ausführe und nachher modifiziere klappt es auch nicht, auch hier tritt der Fehler auf.

 

Hier mal ein Screenshot als Anhang:

 

screenshot_3.jpg

 

Ich bin davon ausgegangen, dass ich das TP als Wert der Form x.abcd angeben muss, also bspw. 1.3508.

Wenn ich eine feste Pip-Anzahl eingeben, bspw. 50, funktioniert es ebenfalls nicht.

 

Mache ich bei der Verwendung etwas falsch? Das Verhalten tritt beim GBPUSD und EURUSD auf.

 

Beste Ostergrüße

DT

Geschrieben
  • Autor

tbOrderSend passt den TakeProfit an die stoplevel an, damit keine ErrorCodes 130 kommen.

könntest du die tb mal auf volle Information (tbSetInformationLevel(-1)) setzen und den Output posten?

 

Verständnissfrage:

Wenn ich eine Order zum Preis price eröffne, wie nah darf dann der TP bzw. SL gesetzt sein?

Ich hätte gedacht price+stoplevel*Point bzw. price-stoplevel*Point.

(Wobei stoplevel= MarketInfo(Symbol(),MODE_STOPLEVEL) )

Geschrieben

Mach ich nur gerade ist es etwas knapp von der Zeit ...

 

was meinst Du damit genau: tbOrderSend passt den TakeProfit an die stoplevel an, damit keine ErrorCodes 130 kommen.

Wie muss die Übergabe genau erfolgen, mit 0.0050 oder mit 50 Pips ???

Geschrieben
  • Autor
Mach ich nur gerade ist es etwas knapp von der Zeit ...

 

was meinst Du damit genau: tbOrderSend passt den TakeProfit an die stoplevel an, damit keine ErrorCodes 130 kommen.

Wie muss die Übergabe genau erfolgen, mit 0.0050 oder mit 50 Pips ???

 

Die Übergabe ist genau wie bei der normalen OrderSend, wenn du einen TP beim price X haben willst, dann musst du X übergeben.

 

In MT gibt es stoplevel, du kannst einen TP bzw SL nicht beliebig nah an den aktuellen Preis legen. Wenn du machen würdest:

OrderSend(Symbol(), OP_BUY, lotSize, Ask, 3, ASk - 1*Point, Ask+1*Point, "geht nicht", MAGIC_NUMBER);

würdest du den Error 130 - Invalid Stops kriegen. Solche Fehleingaben werden von der TB ausgebessert indem er für TP bzw. SL den Preis wählt, der gültig und möglichst nahe an dem gewünschten Wert liegt.

Geschrieben

So, hier mal das Log mit vollständiger Ausgabe:

 

...

13:02:12 2009.02.02 00:00 DT_Utilities GBPUSD,M15: loaded successfully

13:02:12 2009.02.02 00:00 DT_Utilities GBPUSD,M15: Initialisierung DT_Utilities für GBPUSD ...

13:02:12 2009.02.02 00:00 DT_Utilities GBPUSD,M15: Alert: Der EA handelt auf einem DEMO-Account, Symbol GBPUSD

13:02:12 2009.02.02 00:00 DT_Utilities GBPUSD,M15: MagicNumber des EAs - 2

13:02:12 2009.02.02 00:00 lTradeBox GBPUSD,M15: loaded successfully

13:02:12 2009.02.02 00:00 lTradeBox GBPUSD,M15: Initialising TradeBox Version 1.07 happy trading

13:02:12 2009.02.02 00:00 lTradeBox GBPUSD,M15: TB1.07 set information level to max

13:02:12 2009.02.02 00:00 DT_Utilities GBPUSD,M15: Lot-Berechnung für FOREX-Markt GBPUSD ...

13:02:12 2009.02.02 00:00 DT_Utilities GBPUSD,M15: BaseCurrency=GBP AccountCurrency=EUR Kurs=1.4441 Spread=3 Kontraktgr.=100000 SinglePipValue=6.9247 EUR Risiko=2% StopLoss=20 Pips

13:02:12 2009.02.02 00:00 DT_EA_TimeRange GBPUSD,M15: GBPUSD - CalculateLotSize() = 0.01

13:02:12 2009.02.04 07:00 DT_EA_TimeRange GBPUSD,M15: ===> Range gefunden: High = 1.44250000 Low = 1.43590000 Weite = 66 Pips

13:02:12 2009.02.05 05:45 DT_EA_TimeRange GBPUSD,M15: ===> Range gefunden: High = 1.44610000 Low = 1.44010000 Weite = 60 Pips

13:02:12 2009.02.05 08:07 DT_Utilities GBPUSD,M15: Lot-Berechnung für FOREX-Markt GBPUSD ...

13:02:12 2009.02.05 08:07 DT_Utilities GBPUSD,M15: BaseCurrency=GBP AccountCurrency=EUR Kurs=1.4403 Spread=3 Kontraktgr.=100000 SinglePipValue=6.943 EUR Risiko=1% StopLoss=20 Pips

13:02:12 2009.02.05 08:07 lTradeBox GBPUSD,M15: TB1.07 got command send: DR Spread=3 MagicN=0 GBPUSD 0.01@1.44sl:1.4461tp:1.434

13:02:12 2009.02.05 08:07 lTradeBox GBPUSD,M15: TB1.07 current quote: 1.44/1.4403 stoplevel:5 Point:0.0001

13:02:12 2009.02.05 08:07 lTradeBox GBPUSD,M15: TB1.07 Sending: DR Spread=3 MagicN=0 GBPUSD 0.01@1.44sl:1.4461tp:1.4398

13:02:12 2009.02.05 08:07 lTradeBox GBPUSD,M15: open #1 sell 0.01 GBPUSD at 1.4400 sl: 1.4461 tp: 1.4398 ok

13:02:12 2009.02.05 08:07 lTradeBox GBPUSD,M15: TB1.07 suceed sending with 0 retries, OrderTicket: 1

13:02:12 2009.02.05 08:07 Tester: take profit #1 at 1.4398 (1.4395 / 1.4398)

13:02:13 2009.02.09 09:15 DT_EA_TimeRange GBPUSD,M15: ===> Range gefunden: High = 1.47700000 Low = 1.47010000 Weite = 69 Pips

13:02:13 2009.02.12 06:15 DT_EA_TimeRange GBPUSD,M15: ===> Range gefunden: High = 1.44130000 Low = 1.43510000 Weite = 62 Pips

13:02:13 2009.02.12 08:55 DT_Utilities GBPUSD,M15: Lot-Berechnung für FOREX-Markt GBPUSD ...

13:02:13 2009.02.12 08:55 DT_Utilities GBPUSD,M15: BaseCurrency=GBP AccountCurrency=EUR Kurs=1.4352 Spread=3 Kontraktgr.=100000 SinglePipValue=6.9677 EUR Risiko=1% StopLoss=20 Pips

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: TB1.07 got command send: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4349sl:1.4413tp:1.4287

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: TB1.07 current quote: 1.4349/1.4352 stoplevel:5 Point:0.0001

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: TB1.07 Sending: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4349sl:1.4413tp:1.4347

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: open #2 sell 0.01 GBPUSD at 1.4349 sl: 1.4413 tp: 1.4347 ok

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: TB1.07 suceed sending with 0 retries, OrderTicket: 2

13:02:13 2009.02.12 08:55 Tester: take profit #2 at 1.4347 (1.4343 / 1.4346)

13:02:13 2009.02.12 08:55 DT_Utilities GBPUSD,M15: Lot-Berechnung für FOREX-Markt GBPUSD ...

13:02:13 2009.02.12 08:55 DT_Utilities GBPUSD,M15: BaseCurrency=GBP AccountCurrency=EUR Kurs=1.4346 Spread=3 Kontraktgr.=100000 SinglePipValue=6.9706 EUR Risiko=1% StopLoss=20 Pips

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: TB1.07 got command send: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4343sl:1.4413tp:1.4281

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: TB1.07 current quote: 1.4343/1.4346 stoplevel:5 Point:0.0001

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: TB1.07 Sending: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4343sl:1.4413tp:1.4341

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: open #3 sell 0.01 GBPUSD at 1.4343 sl: 1.4413 tp: 1.4341 ok

13:02:13 2009.02.12 08:55 lTradeBox GBPUSD,M15: TB1.07 suceed sending with 0 retries, OrderTicket: 3

13:02:13 2009.02.12 09:02 Tester: take profit #3 at 1.4341 (1.4338 / 1.4341)

13:02:13 2009.02.12 09:02 DT_Utilities GBPUSD,M15: Lot-Berechnung für FOREX-Markt GBPUSD ...

13:02:13 2009.02.12 09:02 DT_Utilities GBPUSD,M15: BaseCurrency=GBP AccountCurrency=EUR Kurs=1.4341 Spread=3 Kontraktgr.=100000 SinglePipValue=6.973 EUR Risiko=1% StopLoss=20 Pips

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: TB1.07 got command send: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4338sl:1.4413tp:1.4276

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: TB1.07 current quote: 1.4338/1.4341 stoplevel:5 Point:0.0001

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: TB1.07 Sending: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4338sl:1.4413tp:1.4336

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: open #4 sell 0.01 GBPUSD at 1.4338 sl: 1.4413 tp: 1.4336 ok

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: TB1.07 suceed sending with 0 retries, OrderTicket: 4

13:02:13 2009.02.12 09:02 Tester: take profit #4 at 1.4336 (1.4333 / 1.4336)

13:02:13 2009.02.12 09:02 DT_Utilities GBPUSD,M15: Lot-Berechnung für FOREX-Markt GBPUSD ...

13:02:13 2009.02.12 09:02 DT_Utilities GBPUSD,M15: BaseCurrency=GBP AccountCurrency=EUR Kurs=1.4336 Spread=3 Kontraktgr.=100000 SinglePipValue=6.9754 EUR Risiko=1% StopLoss=20 Pips

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: TB1.07 got command send: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4333sl:1.4413tp:1.4271

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: TB1.07 current quote: 1.4333/1.4336 stoplevel:5 Point:0.0001

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: TB1.07 Sending: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4333sl:1.4413tp:1.4331

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: open #5 sell 0.01 GBPUSD at 1.4333 sl: 1.4413 tp: 1.4331 ok

13:02:13 2009.02.12 09:02 lTradeBox GBPUSD,M15: TB1.07 suceed sending with 0 retries, OrderTicket: 5

13:02:13 2009.02.12 09:02 Tester: take profit #5 at 1.4331 (1.4328 / 1.4331)

13:02:13 2009.02.12 09:02 DT_Utilities GBPUSD,M15: Lot-Berechnung für FOREX-Markt GBPUSD ...

...

 

Interessant ist auch, dass mir die TradeBox als MagicNumnber 0 ausgibt. Mein Programm allerdings 2. 2 ist an dieser Stelle korrekt ...

Geschrieben
  • Autor

TakeProfit war ein Bug drin, (klassische Vertauschung von Min und Max)

 

Interessant ist auch, dass mir die TradeBox als MagicNumnber 0 ausgibt. Mein Programm allerdings 2. 2 ist an dieser Stelle korrekt ...

Wo gibt dein Prog 2 aus? bzw. wo die TradeBox 0? Die TradeBox plottet die MagicNumber nie (werd ich als Debug einbauen). Das was man im Log sieht ist dein Comment.

Geschrieben

Ahhh .... mein Kommentar .... klar ....

 

lTradeBox GBPUSD,M15: TB1.07 Sending: DR Spread=3 MagicN=0 GBPUSD 0.01@1.4333sl:1.4413tp:1.4331

 

... Bug im Kommentar ... ne, ne, ne ... :badtaste_:

 

Danke für die Prüfung des TakeProfit-Codes ... nun funktioniert es wie erwartet ...

Geschrieben
  • Autor
Eine Frage, weil wir gerade ein wenig beim aufräumen sind. DieBackup-Versionen, können wir die entfernen oder sollen wir sie im Modul belassen?

 

Also von mir her könnt ihr die alten Versionen entfernen, es sorgt mMn eh eher für Verwirrung weil Neulinge als erstes die vorletzte Version runterladen ;)

  • 4 Wochen später...
  • 1 Jahr später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.