Trailing Stops e Trailing Profit

 

Ho bisogno di usare Trailing Stops e Trailing Profit.

Il mio piano:

Per il Trailing Stop:

*Dopo aver raggiunto un certo limite di profitto diciamo 10 pip, lo Stop Loss si sposterà a 5 pip. Ora, se questo trade ritraccia di nuovo a 5 pip, allora "due terzi" del trade saranno chiusi.

*Il rimanente 'Un terzo' continuerà a funzionare e il 'Trailing Stop' non sarà applicato.

Per il Trailing Profit:

*Se l'operazione si muove di altri 5 pip (cioè 10+5=15 pip), allora un terzo dell'operazione sarà chiuso e i rimanenti due terzi continueranno a funzionare.

*E poi diciamo che dopo altri 10 pip, (cioè 15+10=25 pip) la 'Metà' del trade rimanente sarà chiusa e la rimanente 'Metà' continuerà a funzionare senza alcun limite di Take Profit.

Ma non sono sicuro che possa essere fatto per una 'singola' operazione. Ecco perché stavo pensando in modo un po' diverso.

--->Tre diversi trade saranno aperti dello 'stesso' lotto allo 'stesso' momento.

--->Due di essi saranno chiusi se il prezzo torna al livello di trailing stop loss e l'altro continuerà a funzionare per la parte trailing stop.

--->Il primo trade sarà chiuso al 'TP-1', il secondo trade sarà chiuso al 'TP-2' e l'ultimo continuerà a funzionare per la parte Trailing Profit.

Ma come distinguere queste operazioni? Si può usare il 'Biglietto d'ordine', ma non c'è garanzia che tutti e tre i trade abbiano seriali consecutivi, perché ci saranno anche altri trade di altre coppie.

In realtà è come se per un trade lo Stop Loss iniziale non si muovesse.
 

Sei un programmatore?

Stai imparando a programmare?

Sei interessato ad imparare a programmare le tue idee?

Se la tua risposta è no, allora prova a cercare nel Code-Base quello che stai cercando.

Arav007:

Ho bisogno di usare Trailing Stops e Trailing Profit.

Il mio piano:

Per il Trailing Stop:

*Dopo aver raggiunto un certo limite di profitto, diciamo 10 pip, lo Stop Loss si sposterà a 5 pip. Ora, se questo trade ritraccia di nuovo a 5 pip, allora "due terzi" del trade saranno chiusi.

*Il rimanente 'Un terzo' continuerà a funzionare e il 'Trailing Stop' non sarà applicato.

Per il Trailing Profit:

*Se l'operazione si muove di altri 5 pip (cioè 10+5=15 pip), allora un terzo dell'operazione sarà chiuso e i rimanenti due terzi continueranno a funzionare.

*E poi diciamo che dopo altri 10 pip, (cioè 15+10=25 pip) la 'Metà' del trade rimanente sarà chiusa e la rimanente 'Metà' continuerà a funzionare senza alcun limite di Take Profit.

Ma non sono sicuro che possa essere fatto per una 'singola' operazione. Ecco perché stavo pensando in modo un po' diverso.

--->Tre diversi trade saranno aperti dello 'stesso' lotto allo 'stesso' momento.

--->Due di essi saranno chiusi se il prezzo torna al livello di trailing stop loss e l'altro continuerà a funzionare per la parte trailing stop.

--->Il primo trade sarà chiuso al 'TP-1', il secondo trade sarà chiuso al 'TP-2' e l'ultimo continuerà a funzionare per la parte Trailing Profit.

Ma come distinguere queste operazioni? Si può usare il 'Biglietto d'ordine', ma non c'è garanzia che tutti e tre i trade abbiano seriali consecutivi, perché ci saranno anche altri trade di altre coppie.

In realtà è come se per un trade lo Stop Loss iniziale non si muovesse.

 
ubzen:

Sei un programmatore?

Stai imparando a programmare?

Sei interessato ad imparare a programmare le tue idee?

Se la tua risposta è No a quanto sopra, allora prova a cercare nel Code-Base quello che stai cercando.



Ho cercato e poi ho pubblicato questo.

Ci sono post su 'Trailing Stops' ma non sono riuscito a trovare 'Esattamente' quello di cui ho bisogno. Forse l'ho perso lì. Quindi se conosci il link per favore dammi.

 
Arav007: Ho cercato e poi ho postato questo. Ci sono post su 'Trailing Stops' ma non ho trovato 'Esattamente' quello che mi serve. Forse l'ho perso lì. Quindi se conoscete il link per favore datemelo.
Mi dispiace di non riuscire a trovarne uno anche per te. Per favore sii paziente, forse qualcuno arriverà e lo codificherà per te.
 
ubzen:
Mi dispiace di non riuscire a trovarne uno anche per voi. Per favore sii paziente, forse qualcuno arriverà e lo codificherà per te.


In realtà non ho bisogno dell'intero codice. Ho solo bisogno di sapere quale 'Logica' può essere implementata qui con quale'Funzione(i)'?

Ho un po' di logica in mente ma ho bisogno di un modo per 'distinguere' gli scambi per 1,2,3.

 
Arav007:


In realtà non ho bisogno di tutto il codice. Ho solo bisogno di sapere quale 'Logica' può essere implementata qui con quale 'Funzione(e)'?

Ho qualche logica in mente ma ho bisogno di un modo per 'distinguere' i trade da 1,2,3.


poi provate a realizzarlo e mostrate qui i vostri tentativi quando non riuscite a fare qualsiasi cosa proviate....

implementato modo più semplice aprire 3 trade 'al nuovo segnale' poi fare il tuo piano

 

Ho pensato qualcosa del genere:

Ci saranno tre scambi.

for(cnt=3;cnt>0;cnt--)

{

if (cnt==1)

{ 

 Disable Trailing Stop and Trailing Step

}

else

{

Enable Trailing Stop and Trailing Step

}

} 

//Trailing Profit:

for(cnt=3;cnt>0;cnt--)

{

if (cnt==3)

{ 

Set take profit=TP1

}

if (cnt==2)

{

Set take profit= TP2

} 

else

{

Disable Take Profit

}

}  

Questo è solo schematico. Ci sarà carne su questo scheletro se la "logica" funziona.

 
Arav007:

Ho pensato qualcosa del genere:

Ci saranno tre scambi.

Questo è solo schematico. Ci sarà carne su questo scheletro se la "logica" funziona.


no si ottiene il segnale per aprire la vendita o l'acquisto

Ora devi fare una logica che ti apre 3 trade

con lo stesso stoploss

1 con takeprofit al tuo primo livello

1 con takeprofit al tuo secondo livello

1 senza takeprofitlevel

 
deVries:


no si ottiene il segnale per aprire la vendita o l'acquisto

ora devi fare una logica, apri 3 operazioni

con lo stesso stoploss

1 con takeprofit al tuo primo livello

1 con takeprofit al tuo secondo livello

1 senza takeprofitlevel


Quindi deve essere qualcosa del genere?

double dTakeProfitPrice_1=10;

double dTakeProfitPrice_2=20;

double dTakeProfitPrice_3=0;

if (Buy Condition Met)

{

if(iOpenOrders_Buy < iMaxOrders)

{

if(iOpenOrders_Buy ==0) // there is no 'Open' Buy orders

{

BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order",MagicNumber, 0,Blue);

BuyOrder_2=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_2, "Buy Order",MagicNumber, 0,Blue);

BuyOrder_3=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_3, "Buy Order",MagicNumber, 0,Blue);

}

E per quanto riguarda lo stop loss?

 
Arav007:


Quindi deve essere qualcosa del genere?

E che dire dello Stop Loss?


stoploss si modifica per due trade quando il prezzo si è mosso > 10 pip oltre l'ordineopenprice

double dTakeProfitPrice_1=10;

double dTakeProfitPrice_2=20;

double dTakeProfitPrice_3=0;
double BuyOrder_1,.......,.......;
if (Buy Condition Met && iOpenOrders_Buy == 0)
{

iOpenOrders_Buy = 3;

{

if(iOpenOrders_Buy  > 0) // we have to open new Buy orders

{

if(iOpenOrders_Buy == 3)
         {
         BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order",MagicNumber, 0,Blue);
         if(BuyOrder_1 > 0).......
         

         }
if(iOpenOrders_Buy == 2)
         {
         BuyOrder_2=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_2, "Buy Order",MagicNumber, 0,Blue);
....



if(iOpenOrders_Buy == 1)
         {
         BuyOrder_3=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_3, "Buy Order",MagicNumber, 0,Blue);
....
}
 
deVries:


stoploss si modifica per due operazioni quando il prezzo si è mosso > 10 pip oltre l'ordineopenprice


Scusate, in realtà mi sono un po' confuso.

if(iOpenOrders_Buy = 3)

Qui se il totale degli ordini di acquisto aperti è uguale a '3' allora il codice procederà alla parte successiva.

if(iOpenOrders_Buy > 0 )

Quindi se il conteggio dell'ordine Total Opened Buy è maggiore di '0' allora si procederà alla parte successiva.

se(iOpenOrders_Buy == 3)

Allora se il conteggio degli ordini di acquisto aperti è uguale a 3 allora aprirà BuyOrder_1, se è uguale a '2' allora aprirà BuyOrder_2 e poi BuyOrder_3 se il conteggio degli ordini di acquisto aperti è uguale a 1.

Ho ragione?

Motivazione: