Che vi risulti è stata attivata la possibilita’ in live/demo di far girare codici con chiusure parziali?
Ho fatto un sistema che in backtest funziona regolarmente come dovrebbe andando a chiudere le posizioni dove dovrebbe, ma una volta messo live in demo chiude tutto alla prima condizione anzichè la meta’.
Se fosse attiva la cosa ho già capito che il motivo dell’errore riscontrato è dovuto che il mio sistema funziona con 1 cfd e poi lo smezza mentre in demo il minimo è uno.
(per la serie fai una domanda e datti una risposta…) 😀
Si, da quando c’è la versione 11, ma solo per chiusure a mercato (con ordini pendenti si chiude sempre l’intera posizione).
Devi verificare il minimo di contratti che si devono avere aperti (che corrisponde al numero di contratti ammessi per la prima posizione). Sul DAX è 0.5, su altri strumenti è 1 e su altri ancora 0.2, ecc… va controllato con IG.
Queste sono le formule (scritte da Roberto) per splittare una posizione vincente – perdente [long o short] in punti e per splittare una posizione vincente – perdente [long o short] in percentuale.
- Non confondere vincente e perdente con long o short: splittare una posizione vincente (ad esempio) vuol dire chiudere metà del guadagno al di là che la posizione sia long o short.
once partialcloseGain = 1 // a) splittare una posizione VINCENTE in punti
If partialcloseGain then
ONCE PerCent = 0.5 //close 1/2 size
PipsGain = 100 //PositionPrice * PerCentGain / PipSize //100 = 100 punti
ONCE MinLotSize = 0.5 //IG minimum size
ExitQuantity = abs(CountOfPosition) * PerCent
LeftQty = max(MinLotSize,abs(CountOfPosition) - ExitQuantity)
CloseQuantity = max(0,abs(CountOfPosition) - LeftQty)
TempGain = PositionPerf * PositionPrice / PipSize
IF Not OnMarket THEN
Flag = 1
ENDIF
IF partialcloseGain AND LongOnMarket and TempGain >= PipsGain AND Flag THEN
SELL CloseQuantity Contracts AT Market
Flag = 0
endif
IF partialcloseGain AND ShortOnMarket and TempGain >= PipsGain AND Flag THEN
exitshort CloseQuantity Contracts AT Market
Flag = 0
endif
endif
//----------------------------------------------------------------------------------------------
once partialcloseLoss = 1 // b) splittare una posizione PERDENTE in punti
If partialcloseLoss then
ONCE PerCent = 0.5 //close 1/2 size
PipsLoss = 100 //PositionPrice * PerCentGain / PipSize //100 = 100 punti
ONCE MinLotSize = 0.5 //IG minimum size
ExitQuantity = abs(CountOfPosition) * PerCent
LeftQty = max(MinLotSize,abs(CountOfPosition) - ExitQuantity)
CloseQuantity = max(0,abs(CountOfPosition) - LeftQty)
TempGain = PositionPerf * PositionPrice / PipSize
IF Not OnMarket THEN
Flag = 1
ENDIF
IF partialcloseLoss AND LongOnMarket and TempGain <= -PipsLoss AND Flag THEN
SELL CloseQuantity Contracts AT Market
Flag = 0
endif
IF partialcloseLoss AND ShortOnMarket and TempGain <= -PipsLoss AND Flag THEN
exitshort CloseQuantity Contracts AT Market
Flag = 0
endif
endif
once partialcloseGain = 1 //a) splittare una posizione VINCENTE in %
If partialcloseGain then
ONCE PerCent = 0.5 //close 1/2 size
ONCE PerCentGain = 0.01 //0.005 = 0.5% - 0.01 = 1%
ONCE MinLotSize = 0.5 //IG minimum size
ExitQuantity = abs(CountOfPosition) * PerCent
LeftQty = max(MinLotSize,abs(CountOfPosition) - ExitQuantity)
CloseQuantity = abs(CountOfPosition) - LeftQty
IF Not OnMarket THEN
Flag = 1
ENDIF
IF partialcloseGain AND LongOnMarket and close >= (PositionPrice * (1 + PerCentGain)) AND Flag THEN
SELL CloseQuantity Contracts AT Market
Flag = 0
endif
IF partialcloseGain AND ShortOnMarket and close <= (PositionPrice * (1 - PerCentGain)) AND Flag THEN
exitshort CloseQuantity Contracts AT Market
Flag = 0
endif
endif
//----------------------------------------------------------------------------------------------
once partialcloseLoss = 1 //b) splittare una posizione PERDENTE in %
If partialcloseLoss then
ONCE PerCent = 0.5 //close ½ size
ONCE PerCentLoss = 0.01 //0.005 = 0.5% - 0.01 = 1%
ONCE MinLotSize = 0.5 //IG minimum size
ExitQuantity = abs(CountOfPosition) * PerCent
LeftQty = max(MinLotSize,abs(CountOfPosition) - ExitQuantity)
CloseQuantity = abs(CountOfPosition) - LeftQty
IF Not OnMarket THEN
Flag = 1
ENDIF
IF partialcloseLoss AND LongOnMarket and close <= (PositionPrice * (1 - PerCentLoss)) AND Flag THEN
SELL CloseQuantity Contracts AT Market
Flag = 0
endif
IF partialcloseLoss AND ShortOnMarket and close >= (PositionPrice * (1 + PerCentLoss)) AND Flag THEN
exitshort CloseQuantity Contracts AT Market
Flag = 0
endif
endif
come sarebbe a dire solo per ordini di mercato…. non ho parole praticamente non serve a niente la funzione, solo per verificare in demo la validita’ di una strategia ma poi non la si puo’ usare in live. bah
Queste sono le formule (scritte da Roberto) per splittare una posizione vincente – perdente [long o short] in punti e per splittare una posizione vincente – perdente [long o short] in percentuale.
Scusami, e che dovrei farci? 😀
Avevo chiesto solo un informazione.
Grazie
È un problema di IG, in quanto il sup sistemacnon ha le istruzioni necessarie per chiudere posizioni parziali tramite ordini pendenti. Funziona solo in backtest.
Speriami IB si aggiunga presto come alternativa per il trading autonatico. Alcuni problemi attuali sarebbero finalmente risolti.
Quindi Secondo te roberto potrei contattare IG per conoscere se eventualmente hanno intenzione di sistemarlo?
Purtroppo PRT ha una potenzialita’ enorme, ma essere legata solo ad IG la danneggia.
Credo lo abbia già chiesto più volte anche PRT, però più pressioni ricevono, più probabilità ci sono che prendino in considerazione la questione.
Buonasera, sono nuovo e da parecchio utilizzo la proreatime legata a interactive brokers, la mia domanda è tradando il microdax vorrei entrare con tre contratti e chiuderne uno a 10 punti per esempio, portare gli altri due a be e mettere il profit a 30 per esempio e a 50 sul terzo. esiste qualcosa che possa aiutarmi, vi ringrazio molto, di programmazione non so nulla grazie ancora.
Con IB per il momento è possibile solo il trading manuale.
La speranza è che nel corso del 2022 abiliti anche il trading automatico.
Quando sarà abilitato si, si potranno fare le operazioni che hai descritto.
Con IB dovrebbe essere possibile anche la chiusura parziale mediante ordini pendenti (che IG non supporta).
Si, da quando c’è la versione 11, ma solo per chiusure a mercato (con ordini pendenti si chiude sempre l’intera posizione).
Devi verificare il minimo di contratti che si devono avere aperti (che corrisponde al numero di contratti ammessi per la prima posizione). Sul DAX è 0.5, su altri strumenti è 1 e su altri ancora 0.2, ecc… va controllato con IG.
ciao avete mica info se hanno messo la possibilita’ degli ordini limit/stop per chiudere parzialmente i trade?
No, per il momento si possono fare chiusure parziali solo con ordini a mercato, non pendenti.