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

Автор:Чао Чжан, Дата: 2024-01-12 14:46:04
Тэги:

img

Обзор

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

Принцип стратегии

Основная логика количественной стратегии торговли основана на отслеживании совпадения между тенденциями движения цен и изменениями в объеме торговли. В частности, стратегия использует разницу между ценой закрытия и ценой открытия как изменение цены, а затем умножает ее на объем торговли в течение дня, чтобы получить общую кривую цены и объема. Эта общая кривая может отражать тенденцию изменения цен и объем торговли сопровождает взаимосвязь одновременно. Затем вычисляется скользящая средняя этой совместной кривой в качестве критерия количественного тренда. Когда совместная кривая проникает в ее скользящую среднюю, генерируется сигнал покупки. Когда она падает ниже своей скользящей средней, генерируется сигнал продажи, тем самым реализуя операцию открытия количественного отслеживания изменений ценового тренда.

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

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

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

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

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

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

Резюме

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


/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © avsr90

//@version=5
strategy(title="Lp-Op vol",shorttitle="LPV", max_bars_back = 5000,overlay=false,format=format.volume )

//Resolutions

Resn=input.timeframe(defval="",title="resolution")
Resn1=input.timeframe(defval="D",title="resolution")

//Intraday Open and Last Price and Last price- Open Price calculations.

Last_Price=math.round_to_mintick(close)
Open_Price = request.security(syminfo.tickerid ,Resn1,close[1],barmerge.gaps_off, barmerge.lookahead_on) 
Op_Cl=math.round_to_mintick(Last_Price-Open_Price)


//length from Intra Day Open Price 
 
Nifnum= ta.change(Open_Price)
Length_Intraday=int(math.max(1, nz(ta.barssince(Nifnum)) + 1))

//Input for Length for Volume 

Length_Vol=input(defval=20, title="L for Vol")

// Last Price- Open price Volume, Average Intraday Last price-Open Price Volume 
//and  Volume Bars  calculations.

Op_Cl_Vol=(Op_Cl*volume)
Avg_Vol_Opcl=ta.sma(Op_Cl_Vol,Length_Intraday)
Vol_Bars=ta.sma(volume,Length_Vol)

//Plots 
plot(Op_Cl_Vol,color=Op_Cl_Vol>0 ? color.green:color.red,title="OPCLV")
plot(Avg_Vol_Opcl, title="Avg Vol", color=color.fuchsia)
plot(Vol_Bars, title="Vol Bars", color=color.yellow)

//Strategy parameters 

startst=timestamp(2015,10,1)

strategy.entry("lo",strategy.long,when= ta.crossover(Op_Cl_Vol,Avg_Vol_Opcl) and ta.crossover(volume,Vol_Bars))
strategy.entry("sh",strategy.short,when=ta.crossunder(Op_Cl_Vol,Avg_Vol_Opcl)and ta.crossunder(volume,Vol_Bars )) 



Больше