Neo traderBot

Neo traderBot

Você sabia?

leafleafleafDocy banner shape 01Docy banner shape 02Man illustrationFlower illustration

Fórum aberto da Comunidade NeoTraderBot

Notifications
Clear all

IDENTIFICAR SAIDAS PARCIAIS

1 Posts
1 Usuários
0 Reactions
99 Visualizações
(@marcosdepaula)
Novo membro
Registrou: 3 meses atrás
Posts: 1
Iniciador do tópico  

Fala pessoal, novo novo por aqui e tbm novo em programação NTSL. Estou com dificuldade de atualizar o valor de uam variável para True quando uma parcial é feita.

atualmente estou fazendo desta forma abaixo:

// -----------------------------------------------------------
// 2) VERIFICA SE ATINGIU O PRIMEIRO ALVO DA PARCIAL E ATUALIZA O CONTROLE DE PARCIAIS
// -----------------------------------------------------------

If (Close[0] >= BuyPrice + ParcialPontos) Then
Begin

parcialCompraFeita := true;

End;

 

na iamgem que anexei, vejam que a parcial foi feita, mas o StopLoss não foi para o ponto zero, e o motivo para isso é pq a variavel: parcialCompraFeita  não atualizou para true.

 

Alguem poderia me dar uma luzzzz please..

 

 

 

Mas não sei o que está havendo, que não não entra nessa condição de jeito nenhum. A ideia é que após a parcial feita, ele entre ai e atulize a variavel para que eu possa colocar o StopLoso no ponto zero.

SEgue o codigo completo da parcial.

If (IsBought) Then
Begin
// -----------------------------------------------------------
// 1) PARCIAL DE 50% NA COMPRA
//
// Condições:
// - Ainda não fez parcial (parcialCompraFeita = false)
// - A máxima do candle atingiu (BuyPrice + ParcialPontos)
//
// A quantidade de parcial é calculada como 50% do total de
// contratos configurados em Contratos.
// -----------------------------------------------------------

// FECHA 50% DA POSIÇÃO (Contratos / 2)
// IMPORTANTE: Caso numero de contratos impar, o maior lote vai ficar para a primeira parcial.

If (not parcialCompraFeita) AND (BuyPositionQty() = Contratos) Then
Begin
// QUANTIDADE DA PARCIAL NA COMPRA:
// - Se CONTRATOS PAR: 50% exato
// - Se CONTRATOS ÍMPAR: maior parte na parcial

If Mod(Contratos,2) = 0 then
SellToCoverLimit(BuyPrice() + ParcialPontos, Contratos / 2)
else
SellToCoverLimit(BuyPrice() + ParcialPontos, (Contratos + 1) / 2);
End;

// -----------------------------------------------------------
// 2) VERIFICA SE ATINGIU O PRIMEIRO ALVO DA PARCIAL E ATUALIZA O CONTROLE DE PARCIAIS
// -----------------------------------------------------------

If (Close[0] >= BuyPrice + ParcialPontos) Then
Begin

parcialCompraFeita := true;

End;

// -----------------------------------------------------------
// 2) APÓS A PARCIAL, STOP EM BE E ALVO FINAL PARA A 2ª METADE
// -----------------------------------------------------------
If (parcialCompraFeita) Then
Begin
StopLoss := BuyPrice + MargelParcial; // Breakeven (ponto zero + margem)
StopGain := BuyPrice + AlvoFinalPontos; // Alvo final da 2ª metade

SellToCoverLimit(StopGain);
SellToCoverStop(StopLoss, StopLoss - (10 * MinPriceIncrement));
End
else
Begin
// -------------------------------------------------------
// 3) ANTES DA PARCIAL:
// mantém stop técnico por ATR com base no preço de entrada
// -------------------------------------------------------
StopGain := BuyPrice + AlvoFinalPontos;
// StopLoss := BuyPrice - (valorATR * ATRMultiplicador);

StopLoss := Low[0] - 290; //StopATr
//TESTE DE OUTROS TIPOS DE STOP LOSS
//StopLoss := Low[0] - margemStopLoss; //vega antigo

SellToCoverLimit(StopGain);
SellToCoverStop(StopLoss, StopLoss - (10 * MinPriceIncrement));
End;

// ====== CONTROLE DE TEMPO NO TRADE (se habilitado) ======
If (UsaTempoMaximoTrade) and
(Time >= HoraSaidaMaxima) Then
ClosePosition();

// Segurança extra: se o fechamento ultrapassar alvo ou stop, encerra
If (Close > StopGain) or (Close < StopLoss) Then
ClosePosition();
End;

 


   
Citar