1) Es gibt einen SRC-Knopf in der Editor-Zeile für Code!!
2) In Mt4 (ich vermute, für Mt5 gilt das auch) gibt es Volume() und TickVolume(). Lies mal unter SymbolInfo...().
Hallo zusammen, vielleicht wisst ihr was zu der Problematik.
Seit neuesten kann man sich ja die Hedge-Funktion beim MT5 freischalten lassen was ich auch tat.
Sogleich habe ich mir auch ein Handelsprogramm geschrieben was nun nach ca.2 Wochen
Hallo , in dem Code wird keine Position eröffnet.
Pos.Volume kann nur 0 sein
unabhängig davon gibt es 2 arten Positionen zu selectieren.
1. Netting Mode .....Select über Symbol da ja nur eine Position vorhanden sein kann mit dem Symbol
2. Hedge Mode ......Select über PositionsNummer ! ..da ein Select über Symbol nicht mehr funktionieren kann .
Gruß Christian
Habe eben mal den Text der es erklärt aus der MQL5 Website kopiert.
PositionSelectByTicket
Die neue Funktion PositionSelectByTicket wählt eine offene Position für die weitere Arbeit nach dem angegebenen Ticket aus.
bool PositionSelectByTicket( ulong ticket // Ticket der Postion );
PositionSelect
PositionSelect wählt eine Position nach dem Symbolnamen für die weitere Arbeit mit den Funktionen PositionGetDouble, PositionGetInteger undPositionGetStringaus. Im Hedging-System, in welchem mehrere Positionen auf einem Symbol vorhanden sein können, wählt die Funktion die Position mit dem kleinsten Ticket aus.
ACCOUNT_MARGIN_MODE
Mit der neuen Eigenschaft ACCOUNT_MARGIN_MODE kann man den Berechnungsmodus der Marge und der Verrechnung von Positionen auf dem Konto erhalten:
Identifikator | Beschreibung |
---|---|
ACCOUNT_MARGIN_MODE_RETAIL_NETTING | Wird für den außerbörslichen Handel mit Netting-Modus verwendet (eine Position pro Symbol). Die Marge wird anhand des Symboltyps (SYMBOL_TRADE_CALC_MODE) berechnet. |
ACCOUNT_MARGIN_MODE_EXCHANGE | Wird für den Börsenmarkt verwendet. Die Marge wird anhand Diskonte berechnet, die in den Einstellungen des Symbols angegeben werden. Die Diskonte werden vom Broker gesetzt, können aber nicht niedriger als die von der Börse gesetzten Werte sein. |
ACCOUNT_MARGIN_MODE_RETAIL_HEDGING | Wird für den außerbörslichen Handel bei einer unabhängigen Verrechnung von Positionen ("Hedging", mehrere Positionen können pro Symbol vorhanden sein). Die Marge wird anhand des Symboltyps (SYMBOL_TRADE_CALC_MODE) und unter Berücksichtigung mehrerer Positionen pro Symbol berechnet. |
zuerst mal ... vielen, vielen Dank für deine schnelle Reaktion Christian und deine Hilfestellungen.
nach fast 1 Tag, seit 9:00 morgens Problemsuche habe ich das Problem gefunden...und kann nur sagen ich war auf der
Leitung gesessen und war ein Idiot !
Warum: weil ich das Programm im EURUSD laufen lies aber eine EURYPY position eröffnet habe.
Aber dank dir nochmals Christian mit dem
PositionSelectByTicket
Befehlen warst du genau auf der richtigen Spur.
Diese Befehlsfamilie verwende ich in minem Hauptprogramm auch recht häufig, aber übers Ticket allein funktioniert es anscheinend nicht,
näher habe ich das noch nicht erforscht über ein anderes Programm da ich bereits schrieb sah ich dass ich das nochmal wahrscheinlich
über die SymbolSelectbefehle eingrenzen muss.
Da nun aber d
as Hedgen im MT5 relativ neu ist und vielleicht auch dir und andern hilft sind vielleicht die s folgenden links interessant,
denn es gibt nun auch ein " H e d g e T e r m i n a l " das man downloaden kann und in den MT5 integrieren kann.
Habs kurz ausprobiert habe aber den eigentlichen Sinn noch nicht erkannt.
Aber hier mal die links für alle Hedge-interessierten.
https://www.mql5.com/de/articles/1297#c2_1
https://www.mql5.com/de/articles/1316#c1_1
https://www.mql5.com/de/market/product/5084
Leider sehr viel Lesestoff und noch mehr zu kapieren... denn nur kopieren hilft in dem Fall nix.
So ich werde jetzt mein neues Hedge Programm noch etwas verfeinern und hoffe das Gelbe vom Ei noch
zu finden. Es arbeitet soweit ganz gut aber ich musste beim testen erkenne dass die Kunst
des hedgens im richtigen Auflösungszeitpunkt liegt und der ist wie beim normalen Handel ähnlich
schwierig wie der StopLosspunkt.
...übrigens ich arbeite mit 400er Hebel und da gehts halt schnell mit dem TradeOut da, je nach Währung,
die 100% Gewinn/Verlust bei nur ca. 18-35 Pips liegen na ja und was soll ich sagen...
Ihr, du weist vielleicht was ich meine.
viel Erfolg wünsche ich allen interessierten und hoffe dass andere, meine Fehler nicht mehr machen müssen
- 2016.06.13
- Vasiliy Sokolov
- www.mql5.com
Freut mich das ich helfen konnte.
Ja es ist schwierig momentan lauffähigen Code über einen Monat hin zu behalten.
Es sind gerade riesige Baustellen im MT5 .
Was ja nicht das schlechteste ist.
Auf jeden Fall steht fest das der MT5 immer professioneller wird.
Allein an dem aufgebohrtem Orderhandling wie
void OnTradeTransaction(const MqlTradeTransaction &trans,const MqlTradeRequest &request,
const MqlTradeResult &result)
wird es immer aufwändiger aber auch sicherer die Order an den Markt "weiterzuleiten".
Und es lässt sich auch feststellen das die Artikel besser werden. Fast schon zu komplex :-) wie in dem Hedgeterminal.
hey Chrisian freu mich zu hören... nein nicht freu weil wenn sich codes ständig ändern
man als programmierender der nichts davon weis ganz schön blöd da steht.
Aber freu weil ...ich nicht der Einzige bin dem es so geht... aber wiederum nicht wegen Schadensfreude,
sondern weil ich dann weis dass ich nicht ganz verblödet bin und auch andere manchmal
mit großen Augen vor den Programmcodes sitzen und sagen:
whats happend und warum ist 1+1 nicht mehr 2 ?
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo zusammen, vielleicht wisst ihr was zu der Problematik.
Seit neuesten kann man sich ja die Hedge-Funktion beim MT5 freischalten lassen was ich auch tat.
Sogleich habe ich mir auch ein Handelsprogramm geschrieben was nun nach ca.2 Wochen
Programmier und Testzeit wunderbar funktioniert hat.
Jedoch seit heute vormittag, als ich noch einen zusätzlichen Befehl einfügen wollt nicht mehr.
Dabei stellte ich fest dass die einfachsten Abfragen/Befehle zum Positionsmanagment nicht mehr
funktioniert (z.Bspl.: Pos.Volume()).... erhalte ich nur noch den Wert "0" zurück, egal wieviel
Positionen und Microlots ich im Bestand habe.
Um ausszuschliessen dass es an irgendwelchen anderen Programmteilen liegt habe ich kurz ein
Miniprogramm geschrieben das nur das aktuelle Positionsvolumen und den aktuellen Ask Kurs
im infofenster ausgeben soll.... da erscheint aber immer nur "0" bei Volume;- Sym.Ask() funktioniert
folgendes Programm:
//+------------------------------------------------------------------+
//| testPosition.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CSymbolInfo Sym;
CPositionInfo Pos;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if(!Sym.Name(_Symbol)){
Alert("Failed to initialize CSymbolInfo, try again");
return(-1);
}
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
Pos.Select(_Symbol);Sym.Name(_Symbol);Sym.RefreshRates();Sym.Refresh();
Alert("Ask :",Sym.Ask());
Alert("Vol :",Pos.Volume());
//---
}
Und dass es noch bisschen verwirrender wird....
bei einem nicht gehedgten Konto bekomme ich korrekte Werte angezeigt,
bei einem Hedgkonto bleit der Pos.Volume() immer auf "0".
Weis wer was ????