Ich kenne keine Funktion: GetPositionProperties()?
Such Dir mal diese Liste an und such Dir das richtige aus: https://www.mql5.com/de/docs/trading
- www.mql5.com
oh sorry, die ist selbst definiert in der global scope:
void GetPositionProperties() { pos_symbol =PositionGetString(POSITION_SYMBOL); pos_comment =PositionGetString(POSITION_COMMENT); pos_magic =PositionGetInteger(POSITION_MAGIC); pos_oprice =PositionGetDouble(POSITION_PRICE_OPEN); pos_cprice =PositionGetDouble(POSITION_PRICE_CURRENT); //pos_sl =PositionGetDouble(POSITION_SL); //pos_tp =PositionGetDouble(POSITION_TP); pos_type =(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); pos_volume =PositionGetDouble(POSITION_VOLUME); pos_commission =PositionGetDouble(POSITION_COMMISSION); pos_swap =PositionGetDouble(POSITION_SWAP); pos_profit =PositionGetDouble(POSITION_PROFIT); pos_time =(datetime)PositionGetInteger(POSITION_TIME); pos_id =PositionGetInteger(POSITION_IDENTIFIER); pos_diffoc =pos_oprice-pos_cprice; pos_ask =SymbolInfoDouble(Symbol(),SYMBOL_ASK); pos_bid =SymbolInfoDouble(Symbol(),SYMBOL_BID); pos_spread =pos_ask - pos_bid; opriceplusspread =pos_oprice + pos_spread; opriceminusspread =pos_oprice - pos_spread; } .. und sollte es doch so eigentlich tun. VG
Versuch mal PositionSelectByTicket(ticket) statt PositionSelect(_Symbol)?
Was ist das für eine Konto Hedging oder Netting?
Versuch mal PositionSelectByTicket(ticket) statt PositionSelect(_Symbol)?
Was ist das für eine Konto Hedging oder Netting?
Ok, das ist ein Versuch wert. Das ist ein Hedging, <gelöscht> default, eigentlich will ich ein netting, aber die meinen, die können das nicht umstellen.
Bei einem hedge konto musst du jedenfalls die position selektieren.
anderenfalls bekommst du keine werte raus
wenn du unbedingt ein netting willst, such dir einen vernünftigen broker
Jedenfalls kannst du mi der programmierung eines hedge kontos jedes netting auch bedienenBei einem hedge konto musst du jedenfalls die position selektieren.
anderenfalls bekommst du keine werte raus
wenn du unbedingt ein netting willst, such dir einen vernünftigen broker
Jedenfalls kannst du mi der programmierung eines hedge kontos jedes netting auch bedienen.Ich selektiere ja oben die Position und bekomme dennoch nichts raus.
"Vernünftiger Broker".. sind das nicht alles Dark Rooms?
Ich selektiere ja oben die Position und bekomme dennoch nichts raus.
"Vernünftiger Broker".. sind das nicht alles Dark Rooms?
Ein, du selektierst die position nicht, so wie du das machst zumindest nicht
siehe hier
https://www.mql5.com/de/docs/trading/positionselectbyticket
Vernünftig wenn er nicht mal zwischen netting und hedge umschalten kann?
- www.mql5.com
Ein, du selektierst die position nicht, so wie du das machst zumindest nicht
siehe hier
https://www.mql5.com/de/docs/trading/positionselectbyticket
Vernünftig wenn er nicht mal zwischen netting und hedge umschalten kann?
danke für die Hilfen, schau' ich mir an.. mir fallen die Augen zu, die Tage weiter..
Get rich or die tryin'
Hallo verehrte EA-Coder,
ich steck' mal wieder fest: ich öffne eine Position (die Bedigungen spielen hier keine Rolle), setze danach eine Variable glBuyPlaced
oder glSellPlaced = true und
frage direkt danach auf diese Variable ab und will dann einen notstop usw setzen, was nicht funktioniert,
weil GetPositionProperties keine Werte liefert.
Letzte Mal lernte ich, dass man das Symbol selecten muss, damit das funktioniert, das
wurde mir hier schnell & gut erklärt und ich habe es entsprechend
eingebaut, aber es will nicht:
Ihr seht, ich habe schon beides versucht, mit dem for-loop und, weil ich nur mit einer Position arbeite, mit dem einfachen Version if(PositionSelect(pos_symbol))..
Im Log sieht das leider so aus:
Der Print mit "Zeile 293" zeigt, dass der Code zum if(PositionSelect(pos_symbol))
kommt, aber die Funktion keine Werte liefert. Später, nach einigen Ticks, kommt was an.
Leider kann ich den Debugger nicht nutzen, das
Ding steht nur beim "Warte auf Update" im Tester..
Wie immer vielen Dank & Grüße,
Christian
Hallo Christian,
der Programmteil nach
if(PositionSelect(_Symbol))
wird nicht ausgeführt, also gibt PositionSelect ein "false" zurück.
Jetzt mußt du schauen warum das so ist. Für mich sieht es so aus, das PositionSelect keine Position zu dem Symbol findet.
Also bitte schaue im Journal nach, ob auch wirklich schon eine Position geöffnet ist.
https://www.mql5.com/de/docs/trading/positionselect
Gruß
Thorsten
- www.mql5.com
Hallo Christian,
der Programmteil nach
wird nicht ausgeführt, also gibt PositionSelect ein "false" zurück.
Jetzt mußt du schauen warum das so ist. Für mich sieht es so aus, das PositionSelect keine Position zu dem Symbol findet.
Also bitte schaue im Journal nach, ob auch wirklich schon eine Position geöffnet ist.
https://www.mql5.com/de/docs/trading/positionselect
Gruß
Thorsten
Hallo Thorsten =)
der Code kommt ja nur bis PositionSelect, wenn glSellPlaced
== true gesetzt
ist und das wird wiederum direkt nach dem Öffnen einer Position gesetzt;
vorausgesetzt, dass das, was oben mit der request.action geschieht, eine
Position erzeugt? Es ist ja zunächst nur ein request und noch keine Position, richtig?
Order und Deal-Nummern sind direkt da, aber damit habe
ich ja noch keine Position?
Allerdings wird direkt eine geschlossen, immer mit dem Spread als Verlust; sie wird direkt geschlossen, weil durch die
0-Werte der Positionen meine Entscheidungsbedingungen natürlich Quatsch sind und sofort mein Notstop und/oder Winclose zieht.
Aber
doch, dann ja, es wird direkt eine Position geöffnet (und geschlossen), wie in der KontoHistory zu sehen ist.
Vielen Dank Dir auch und Grüße,
Christian
- 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 verehrte EA-Coder,
ich steck' mal wieder fest: ich öffne eine Position (die Bedigungen spielen hier keine Rolle), setze danach eine Variable glBuyPlaced oder glSellPlaced = true und
frage direkt danach auf diese Variable ab und will dann einen notstop usw setzen, was nicht funktioniert, weil GetPositionProperties keine Werte liefert.
Letzte Mal lernte ich, dass man das Symbol selecten muss, damit das funktioniert, das wurde mir hier schnell & gut erklärt und ich habe es entsprechend
eingebaut, aber es will nicht:
Ihr seht, ich habe schon beides versucht, mit dem for-loop und, weil ich nur mit einer Position arbeite, mit dem einfachen Version if(PositionSelect(pos_symbol))..
Im Log sieht das leider so aus:
Der Print mit "Zeile 293" zeigt, dass der Code zum if(PositionSelect(pos_symbol)) kommt, aber die Funktion keine Werte liefert. Später, nach einigen Ticks, kommt was an.
Leider kann ich den Debugger nicht nutzen, das Ding steht nur beim "Warte auf Update" im Tester..
Wie immer vielen Dank & Grüße,
Christian