Как получить процент прибыли от торговли во время бэк-теста в Amibroker - PullRequest
4 голосов
/ 27 февраля 2020

Я использую Amibroker v6.3

Я хотел бы узнать процент прибыли от сделки, полученной во время обратного тестирования, а затем соответствующим образом скорректировать критерии продажи. Когда прибыль ниже 10%, я хочу использовать эту функцию sell_below10 (). Когда прибыль> 10%, используйте функцию sell_abv10 ().

Как можно определить процент прибыли от сделки во время обратного тестирования, чтобы я мог соответственно использовать правильную функцию продажи?

Спасибо вы.

1 Ответ

3 голосов
/ 29 февраля 2020

Обновлено

Это накапливает изменение в pct с момента открытия сделки и устанавливает переменную Sell для результатов каждой функции соответственно.

function sell_below10() {
    return Close < HHV(High,20) * 0.9;
}

function sell_abv10() {
    return Close < HHV(High,20) * 0.8;
}

Buy = Cross(Close, MA(Close, 50));

openPrice = Ref(Close, -BarsSince(Buy));
pctChange = IIf(openPrice == 0, 0, (openPrice - Close) / openPrice) * 100;

Sell = IIf(pctChange > 10, sell_abv10(), IIf(pctChange < 10, sell_below10(), False));

Самый простой способ - использовать стоп-лосс и стопы прибыли, тогда вам не придется рассчитывать проценты самостоятельно. Установите сигналы на покупку и продажу, как обычно, и добавьте стопы.

Buy = ExRem(YourBuySignal, YourSellSignal); 
Sell = ExRem(YourSellSignal, YourBuySignal);

ApplyStop(stopTypeLoss, stopModePercent, 10);
ApplyStop(stopTypeProfit, stopModePercent, 10);
...