Trailing Stops e Trailing Profit

 

Eu preciso usar Trailing Stops e Trailing Profit.

Meu plano:

Para a Trailing Stop:

* Após atingir um certo limite de lucro, digamos 10 pips, o Stop Loss passará para 5 pips. Agora, se esse comércio voltar para 5 pips, então 'Dois terços' do comércio serão fechados.

*O 'Um terço' restante continuará funcionando e o 'Trailing Stop' não será aplicado a ele então.

Para o Trailing Profit:

*Se esse comércio movimentar mais 5 pips (ou seja, 10+5=15 pips), então 'Um terço' desse comércio será fechado e o restante 'Dois terços' continuará correndo.

*E então diga depois de 10 pips mais, (ou seja, 15+10=25 pips) 'Metade' do comércio restante será fechado e a 'Metade' restante continuará correndo sem qualquer limite de Take Profit.

Mas não tenho certeza se isso pode ser feito para um comércio 'Único'. É por isso que eu estava pensando um pouco diferente.

--->Três trocas diferentes serão abertas de 'Mesmo' lote na hora do 'Mesmo'.

--->Dois deles serão fechados se o preço voltar ao nível do Trailing Stop e o restante Um continuará correndo para a parte do Trailing Stop.

--->O primeiro comércio será fechado em 'TP-1', o segundo comércio será fechado em 'TP-2' e o último continuará correndo para a parte de Trailing Profit.

Mas como distinguir estas trocas? O 'Order Ticket' pode ser usado, mas não há garantia de que todas estas três negociações terão séries de Ticket consecutivas, pois também haverá outras negociações de pares.

Na verdade, é como se para um comércio o Stop Loss inicial não se movesse.
 

Você é um programador?

Você está aprendendo a Programar?

Você está interessado em aprender a Programar suas idéias?

Se sua resposta for Não ao acima, por favor, tente Procurar na Base de Código o que você está procurando.

Arav007:

Eu preciso usar Trailing Stops e Trailing Profit.

Meu plano:

Para a Trailing Stop:

* Após atingir um certo limite de lucro, digamos 10 pips, o Stop Loss passará para 5 pips. Agora, se essa troca voltar para 5 pips, então 'Dois terços' da troca serão fechados.

*O 'Um terço' restante continuará funcionando e o 'Trailing Stop' não será aplicado a ele então.

Para o Trailing Profit:

*Se esse comércio movimentar mais 5 pips (ou seja, 10+5=15 pips), então 'Um terço' desse comércio será fechado e o restante 'Dois terços' continuará correndo.

*E então diga depois de 10 pips mais, (ou seja, 15+10=25 pips) 'Metade' do comércio restante será fechado e a 'Metade' restante continuará correndo sem qualquer limite de Take Profit.

Mas não tenho certeza se isso pode ser feito para um comércio 'Único'. É por isso que eu estava pensando um pouco diferente.

--->Três trocas diferentes serão abertas de 'Mesmo' lote na hora do 'Mesmo'.

--->Dois deles serão fechados se o preço voltar ao nível do Trailing Stop e o restante Um continuará correndo para a parte do Trailing Stop.

--->O primeiro comércio será fechado em 'TP-1', o segundo comércio será fechado em 'TP-2' e o último continuará correndo para a parte de Trailing Profit.

Mas como distinguir estas trocas? O 'Order Ticket' pode ser usado, mas não há garantia de que todas estas três negociações terão séries de Ticket consecutivas, pois haverá outras negociações de pares também.

Na verdade, é como se para um comércio o Stop Loss inicial não se movesse.

 
ubzen:

Você é um programador?

Você está aprendendo a Programar?

Você está interessado em aprender a Programar suas idéias?

Se sua resposta for Não ao acima, por favor, tente Procurar na Base de Código o que você está procurando.



Eu procurei e depois postei isto.

Há posts sobre 'Trailing Stops' mas não consegui encontrar 'Exatamente' o que eu preciso. Pode ser que eu tenha perdido isso lá. Portanto, se você conhece o link, por favor, me dê.

 
Arav007: Eu procurei e depois postei isto. Há posts sobre 'Trailing Stops' mas não consegui encontrar 'Exatamente' o que eu precisava. Pode ser que eu tenha perdido isso por lá. Portanto, se você conhece o link, por favor, me dê.
Lamento não poder encontrar um para você também. Por favor, seja paciente, talvez alguém venha e o codifique para você.
 
ubzen:
Desculpe-me, mas também não consigo encontrar uma para você. Por favor, seja paciente, talvez alguém venha e o codifique para você.


Na verdade, eu não preciso do código completo. Só preciso saber qual 'lógica' pode ser implementada aqui com qual'função(ões)'?

Tenho alguma lógica em minha mente, mas preciso de uma maneira de 'distinguir' os ofícios por 1,2,3.

 
Arav007:


Na verdade, eu não preciso do código completo. Só preciso saber qual 'lógica' pode ser implementada aqui com qual 'função(ões)'?

Tenho alguma lógica em minha mente, mas preciso de uma maneira de 'distinguir' os ofícios por 1,2,3.


então tente fazer isso e mostre aqui suas tentativas quando não conseguir o que quer que tente....

implementada a maneira mais fácil de abrir 3 ofícios "a um novo sinal", então faça seu plano

 

Eu pensei em algo assim:

Haverá três ofícios.

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

}

}  

Isto é apenas esquemático. Haverá Carne neste esqueleto se a "Lógica" funcionar.

 
Arav007:

Eu pensei em algo assim:

Haverá três ofícios.

Isto é apenas esquemático. Haverá Carne neste esqueleto se a "Lógica" funcionar.


não se recebe sinal para abrir vender ou comprar

agora você tem que fazer uma lógica para abrir 3 ofícios

com a mesma perda de carga

1 com takeprofit em seu primeiro nível

1 com takeprofit em seu segundo nível

1 sem nível de takeprofit

 
deVries:


não se recebe sinal para abrir vender ou comprar

agora você tem que fazer uma lógica para abrir 3 negócios

com a mesma perda de carga

1 com takeprofit em seu primeiro nível

1 com takeprofit em seu segundo nível

1 sem nível de takeprofit


Então é para ser algo como isto?

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 quanto ao Stop Loss?

 
Arav007:


Então é para ser algo assim?

E quanto ao Stop Loss?


stoploss você modifica para dois negócios quando o preço se moveu > 10 pips sobre o preço do pedido aberto

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 você modifica para duas negociações quando o preço se moveu > 10 pips acima do preço de pedido aberto


Desculpe-me por ter ficado um pouco confuso.

if(iOpenOrders_Buy = 3)

Aqui se o pedido de Compra Total Aberta for igual a '3', então o código irá prosseguir para a próxima parte.

if(iOpenOrders_Buy > 0 )

Então, se a contagem do pedido de Compra Total Aberta for maior do que '0', então ele prosseguirá para o próximo.

if(iOpenOrders_Buy == 3)

Então, se a contagem da ordem de Compra Aberta for igual a 3, então abrirá BuyOrder_1, se for igual a '2', então abrirá BuyOrder_2 e então BuyOrder_3 é Contagem de ordem de Compra Aberta é igual a 1.

Eu estou certo?

Razão: