Процентная смена Барной диаграммы Стратегия обратного теста

Автор:Чао Чжан, Дата: 2023-11-15 15:41:20
Тэги:

img

Обзор

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

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

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

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

  3. Установка линий порога покупки и продажи.

  4. Показать полосы гистограммы в разных цветах на основе процентной изменения.

  5. Установка на long, когда процентная смена больше порога покупки, и short, когда меньше порога продажи.

  6. Цветные полосы гистограммы в соответствии с направлением положения.

  7. Вход и выход на основе направления позиции.

Преимущества

  1. Интуитивное отображение тенденций изменения цен для принятия решений.

  2. Ясные сигналы входа и выхода в сочетании с индикаторами тренда.

  3. Параметры могут быть оптимизированы для различных продуктов и временных рамок.

  4. Простая и понятная логика, легко понимаемая и модифицируемая.

  5. Хорошая визуализация для быстрой оценки тренда.

Риски

  1. Неправильный выбор ввода может привести к потерям.

  2. Параметры должны быть скорректированы для продуктов с высокой волатильностью, в противном случае вероятность потери увеличивается.

  3. Не объясняется внезапные события, такие как значительные медвежие новости.

  4. Краткий период обратного тестирования может не позволить определить надежность параметров.

  5. Пропускает возможности для обратного движения без времени остановки.

Риски можно контролировать с помощью оптимизации параметров, фильтрации сигналов с помощью других индикаторов, остановки потерь, расширения периода обратного тестирования и т. Д.

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

  1. Подумайте о сочетании с другими индикаторами, такими как индикаторы тренда и волатильности, чтобы подтвердить сигналы.

  2. Внедрить алгоритмы машинного обучения для оптимизации параметров.

  3. Установите динамический стоп-лосс для контроля величины единичных потерь.

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

  5. Добавьте время торговли или фильтры сеансов.

  6. Оптимизировать период обратного тестирования с более длительным временным интервалом.

Резюме

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


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v3.0 27/07/2018
//
//  This histogram displays price or % change from previous bar. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Percent change bar chart Backtest", precision = 2)
input_barwidth = input(4, title="Bar Width")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xPrice = close
xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
colorg = iff(xPrice1 < 0, red, green)
pos = iff(xPrice1 > BuyZone, 1,
       iff(xPrice1 < SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xPrice1, color=colorg, style = histogram, linewidth = input_barwidth, title="Change")

Больше