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) ThenBegin
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) ThenBegin// -----------------------------------------------------------// 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) ThenBegin// QUANTIDADE DA PARCIAL NA COMPRA:// - Se CONTRATOS PAR: 50% exato// - Se CONTRATOS ÍMPAR: maior parte na parcial
If Mod(Contratos,2) = 0 thenSellToCoverLimit(BuyPrice() + ParcialPontos, Contratos / 2)elseSellToCoverLimit(BuyPrice() + ParcialPontos, (Contratos + 1) / 2);End;
// -----------------------------------------------------------// 2) APÓS A PARCIAL, STOP EM BE E ALVO FINAL PARA A 2ª METADE// -----------------------------------------------------------If (parcialCompraFeita) ThenBeginStopLoss := BuyPrice + MargelParcial; // Breakeven (ponto zero + margem)StopGain := BuyPrice + AlvoFinalPontos; // Alvo final da 2ª metade
SellToCoverLimit(StopGain);SellToCoverStop(StopLoss, StopLoss - (10 * MinPriceIncrement));EndelseBegin// -------------------------------------------------------// 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) ThenClosePosition();
// Segurança extra: se o fechamento ultrapassar alvo ou stop, encerraIf (Close > StopGain) or (Close < StopLoss) ThenClosePosition();End;