На основе теории ценовых волн и стратегии скользящей средней


Дата создания: 2023-11-13 16:39:41 Последнее изменение: 2023-11-13 16:39:41
Копировать: 1 Количество просмотров: 640
1
Подписаться
1617
Подписчики

На основе теории ценовых волн и стратегии скользящей средней

Обзор

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

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

  • Расчет среднего значения цены с использованием смежных средних СММА, фильтрация рыночного шума, определение направления тренда
  • Определение ценовых колебаний на основе максимумов и минимумов за определенный период, определение поворотных точек тренда
  • Например, если волна цен выходит за пределы скользящей средней, то цена выходит за пределы средней.
  • Настройка стоп-стоп с отслеживанием стоп-стоп на основе ATR для управления рисками
  • Открывать позиции только в определенные торговые часы, чтобы избежать рыночных колебаний в выходные и в определенные часы дня
  • При сигнале обратного направления - остановка позиции.

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

  • Используя теорию ценовых волн для определения точек перелома цены, а также для определения направления тенденции с помощью скользящих средних, можно эффективно идентифицировать тенденции
  • Настройка точки стоп-убытков с динамическим отслеживанием стоп-убытков ATR позволяет эффективно контролировать одиночные стоп-убытки
  • Открытие позиции только в ликвидное время торговли позволяет избежать ненужных спадов и резких колебаний в определенный период времени.
  • Строго следуя принципу парализованной остановки, остановитесь при появлении обратного сигнала, чтобы получить максимальную прибыль

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

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

Решение риска:

  • Оптимизация параметров волнового цикла, коррекция параметров планового среднего
  • Определение обратного сигнала в сочетании с показателями Stochastics и т.д.
  • Динамическая оптимизация стоп-постов и стоп-условий

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

  • Оптимизация параметров волнового цикла для поиска оптимального планового среднего цикла
  • Присоединение Stoch показатель суждения обратный, настроить сигнал фильтрации фальшивого прорыва
  • Попытка динамического регулирования стоп-стоп и остановки
  • Расширяйте полосу пропускания стоп-пойнтов, чтобы избежать блокировки
  • Параметры оптимизации в зависимости от разных сортов и периодов торговли

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

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

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

//@version=4
strategy("FX Strategy Based on Fractals and SMMA", overlay=true)

// パラメータ
SMMAPeriod1 = input(30, title="SMMA Period")
StopLoss1 = input(7, title="Stop Loss %")
TrailingStopCoef1 = input(2.7, title="Trailing Stop Coefficient")
fractalPeriod = input(5, title="Fractal Period")

// SMMAの計算関数
smma(src, length) =>
    var float smma = na
    if na(smma[1])
        smma := sma(src, length)
    else
        smma := (smma[1] * (length - 1) + src) / length
    smma

// フラクタルの近似
highFractal = high[2] > high[1] and high[2] > high[3] and high[2] > high[4] and high[2] > high
lowFractal = low[2] < low[1] and low[2] < low[3] and low[2] < low[4] and low[2] < low

// エントリー条件
longEntrySignal = lowFractal and close[1] < smma(close, SMMAPeriod1)
shortEntrySignal = highFractal and close[1] > smma(close, SMMAPeriod1)

// エントリー実行
if (longEntrySignal)
    strategy.entry("Long", strategy.long)

if (shortEntrySignal)
    strategy.entry("Short", strategy.short)

// トレーリングストップの計算
atrValue = atr(10)
longStopPrice = close - atrValue * TrailingStopCoef1
shortStopPrice = close + atrValue * TrailingStopCoef1

// トレーリングストップの設定
strategy.exit("Exit Long", "Long", stop=longStopPrice)
strategy.exit("Exit Short", "Short", stop=shortStopPrice)

// バックテスト期間の設定(MetaTraderのバックテストと同じ期間)
startYear = 2007
startMonth = 05
startDay = 01
endYear = 2022
endMonth = 04
endDay = 01

startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// バックテスト期間内でのみトレードを実行
if (time >= startDate and time <= endDate)
    if (longEntrySignal)
        strategy.entry("Long", strategy.long)
    if (shortEntrySignal)
        strategy.entry("Short", strategy.short)