Количественная торговая стратегия, основанная на сравнении ежедневных цен закрытия


Дата создания: 2023-11-21 14:34:11 Последнее изменение: 2023-11-21 14:34:11
Копировать: 0 Количество просмотров: 782
1
Подписаться
1617
Подписчики

Количественная торговая стратегия, основанная на сравнении ежедневных цен закрытия

Обзор

Эта стратегия, называемая стратегией сравнения цен на закрытие линии, является количественной стратегией для принятия решений о торговле на основе цены закрытия линии. Эта стратегия генерирует торговый сигнал, рассчитывая разницу между ценой закрытия линии на текущий день и ценой закрытия линии на предыдущий день.

Стратегический принцип

Основная логика этой стратегии заключается в сравнении закрытия текущей K-линии с закрытием предыдущей K-линии.

  1. Вычислить разницу между текущей ценой закрытия и ценой закрытия за день до этого ((today - yesterday)
  2. Расчет разницы в процентном соотношении к цене закрытия за предыдущий день (разница / вчера закрытие)
  3. Если пропорция больше установленного положительного порога, то создается сигнал покупать; если пропорция меньше установленного отрицательного порога, то создается сигнал продавать
  4. В зависимости от сигнала вход в склад может быть пустым или заполненным.

Стратегия не устанавливает условия стоп-лосса и стоп-стопа, а зависит от торгового сигнала, формируемого в условиях понижения стоимости, для входа в позицию и мирное положение.

Анализ преимуществ

  • Простая и понятная концепция, подходит для начального обучения количественным сделкам.
  • Не допускайте слишком частых сделок, основываясь только на закрытии цены на бирже.
  • Частота сделок может быть контролирована путем корректировки отклонения

Анализ рисков

  • Нет параметров остановки убытков, не может контролировать одиночные убытки
  • Возможно, последовательные торговые сигналы приводят к чрезмерной торговле
  • Возвращение может быть большим и не сможет контролировать общие потери

Направление оптимизации

  • Дополнительная логика сдерживания убытков, контроль одиночных потерь
  • Увеличение лимита на открытие позиций, чтобы избежать чрезмерной торговли
  • Оптимизация параметров, поиск оптимальной частоты торгов

Подвести итог

Эта стратегия создает торговый сигнал, сравнивая ценовые показатели заканчивающего дня. Идея проста и подходит для начального обучения. Однако эта стратегия имеет определенный риск и требует дальнейшей оптимизации для использования в реальных торгах.

Исходный код стратегии
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Daily Close Comparison Strategy (by ChartArt) correct results", shorttitle="CA_-_Daily_Close_Strat", overlay=false)

// ChartArt's Daily Close Comparison Strategy
//
// Version 1.0
// Idea by ChartArt on February 28, 2016.
//
// This strategy is equal to the very
// popular "ANN Strategy" coded by sirolf2009,
// but without the Artificial Neural Network (ANN).
//
// Main difference besides stripping out the ANN
// is that I use close prices instead of OHLC4 prices.
// And the default threshold is set to 0 instead of 0.0014
// with a step of 0.001 instead of 0.0001.
//
// This strategy goes long if the close of the current day
// is larger than the close price of the last day.
// If the inverse logic is true, the strategy
// goes short (last close larger current close).
//
// This simple strategy does not have any
// stop loss or take profit money management logic.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 

threshold = input(title="Price Difference Threshold correct results", type=float, defval=0, step=0.004)

getDiff() =>
    yesterday=request.security(syminfo.tickerid, 'D', close[1])
    today=close
    delta=today-yesterday
    percentage=delta/yesterday
    
closeDiff = getDiff()
 
buying = closeDiff > threshold ? true : closeDiff < -threshold ? false : buying[1]

hline(0, title="zero line")

bgcolor(buying ? green : red, transp=25)
plot(closeDiff, color=silver, style=area, transp=75)
plot(closeDiff, color=aqua, title="prediction")

longCondition = buying
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = buying != true
if (shortCondition)
    strategy.entry("Short", strategy.short)