Ежедневная стратегия сравнения цен на закрытие

Автор:Чао Чжан, Дата: 2023-09-17 18:28:31
Тэги:

Обзор

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

Логика стратегии

  1. Вычислить процентную разницу между ценой закрытия текущей и ценой закрытия предыдущей.

  2. Если процент больше порога, это указывает на рост цены, идите длинные.

  3. Если процент меньше отрицательного порога, это указывает на падение цены, идите коротко.

  4. Порог установлен на 0, что означает длинный курс при любом повышении и короткий при любом падении.

  5. Никакой логики стоп-лосса или получения прибыли, основанной исключительно на сохранении тренда для прибыльности.

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

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

  2. Нет необходимости вычислять какие-либо технические показатели, снижая расход ресурсов.

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

  4. Отличные результаты теста, но показатели вживую сомнительны.

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

  1. Нет стоп-лосса, это неограниченный риск потери.

  2. Неэффективны на неблагополучных рынках, склонны к ловушке.

  3. Существуют риски переоборудования, пока не подтверждены результаты.

  4. Чистое следование тренду не может закрепить прибыль, реализованная прибыль ограничена.

Руководство по оптимизации

  1. Добавить стоп-лосс для контроля риска.

  2. Включить меры волатильности для уменьшения колебаний на нестабильных рынках.

  3. Испытывать различные параметры периода для повышения прочности.

  4. Добавьте индикаторы определения тренда, чтобы избежать иррационального движения цен.

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

Резюме

Основная идея стратегии проста, но ее реальная эффективность сомнительна. До реального применения необходимы более сильные механизмы контроля риска и тестирование оптимизации параметров. Но основная концепция стоит изучить.


/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Daily Close Comparison Strategy (by ChartArt)", 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", type=float, defval=0, step=0.001)

getDiff() =>
    yesterday=security(syminfo.tickerid, 'D', close[1])
    today=security(syminfo.tickerid, 'D', 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)

Больше