Bom dia amigos.
Minha estratégia é num gráfico de 30 min, Swing trade curto de 3 a 5 dias em média, e preciso realizar uma parcial. No backtest eu usava lotes fixos e depois exportava o relatório pra excel e ajustava a quantidade de lotes baseado no meu risco, contudo, a Nelogica lançou a função NUMUNITS que calcula muito bem a quantidade de lotes baseado num determinado capital especificado na constante, mas nas saídas ele não consegue fazer a parcial, e só faz a final.
Escrevi assim:
const
RespiroTicks = 0.05;
Porcentagem = 2;
AlvoFiboParcial = 1.0;
// Alvo Parcial
AlvoFiboFinal = 3;
// Alvo Final
CapitalTotal = 5000; // Uso este valor pra entrada.
// Lote Total
CapitalParcial = 3000; // esse pra saída parcial, e o que sobra em buyposition eu faço a final.
Inicio
{Cálculos}
b := BuyPosition;
s := SellPosition;
R := 1 * MinPriceIncrement;
vMediaCurta := MediaExp(MediaCurta,close);
vMediaLonga := MediaExp(MediaLonga,close);
Plot4(vmediaCurta);
Plot5(vmediaLonga);
P := (Porcentagem);
Lotetotal:= numunits(capitaltotal,lote); // aqui já fica definido o lotes pra entrada
Loteparcial:= numunits(capitalparcial,lote); // aqui já fica definido o lote parcial
{Se estiver comprado - buscar saída}
Se (IsBought) e (sellposition = 0) entao
inicio
SellToCoverStop(StopC,StopC,b * Lote);
Se b = LoteTotal entao
SellToCoverLimit(AlvoC1,LoteParcial); // Parcial que o código não consegue fazer
b := BuyPosition;
Se ((Fechamento < vMedialonga) e (fechamento < vmediacurta)) então
Inicio
Stopc := (Minima - R);
fim;
Se b = (LoteTotal - LoteParcial) entao
SellToCoverLimit(AlvoC2,(LoteTotal - LoteParcial));
Se (Minima < StopC) entao
closeposition;
Se (time > 1630) entao
closeposition;
fim;
Quem puder ajudar eu agradeço