
이것은 단지 다개로 하는 양적 거래 전략이며, 축점 반전 전략과 최소 2배 이동 평균 전략의 장점을 결합한다. 이 전략은 황소 시장에서 주요 추세에 따라 현장에 들어가며, 축점 상궤도 형성을 관찰한 후 반전 신호를 더 많이 판단한다. 동시에, 축점 상궤도 형성을 관찰한 후 반전 신호를 더 많이 판단한다.
이 전략은 중심축점 반전 전략과 최소 2배 이동 평균 전략이 결합되어 있다. 중심축점 반전 전략은 과거 특정 거래일의 최고 가격과 최저 가격을 계산하여 상행선과 하행선을 얻는다. 가격이 상행선을 뚫을 때 반전 신호로 판단한다. 최소 2배 이동 평균은 가격에 더 잘 근접할 수 있는 추세 판단 지표이다. 이 전략은 중심축점 상행선에서 궤도를 형성할 때, 종결 가격이 최소 2배 직선보다 높으면 더 많이 한다.
구체적으로, 이 전략은 먼저 지난 3개의 K선에서 가장 높은 가격과 지난 16개의 K선에서 가장 낮은 가격을 계산하여 중심축점 상계와 하계점을 얻는다. 상계선이 형성될 때, 더 많은 포지션을 열고, 다음 하계선이 형성될 때, 평소 포지션을 한다. 동시에, 20일 최저 2배 이동 평균보다 높은 종식 가격만 포지션을 열도록 요구한다.
두 가지 전략의 장점을 결합하여 거래 결정을 안정하고 신뢰할 수 있습니다.
축점 전략은 반전점을 판단하고, 최소 2배 이동 평균 필터링으로 가짜 브레이크를 처리하여 거래 위험을 줄일 수 있습니다.
대부분의 사람들의 심리적 기대에 부합하는
전략은 간단하고 명확하며 이해하기 쉽고 최적화 가능합니다.
거래 빈도 적당하고 중장선 운영에 적합하다
시장이 급격히 하락하는 기회를 잡지 못함
지연이 있었고, 일부 수익을 놓쳤을 수도 있습니다.
“이봐요, 제가 이 일을 할 수 있어요.
해결책:
계산주기를 적절히 줄여서 지연을 줄여라
이동 평균 변수를 조정하여 참여를 최적화합니다.
단독 손실을 줄이기 위한 손실 차단 전략을 강화
다양한 트렌드 지표 포지션을 추가하여 판단의 정확성을 향상시킵니다.
기계 학습 모델 예측 결과를 증가시키고 의사 결정을 안내합니다.
변동률 지표와 함께 포지션 규모를 제어합니다.
최적화 매개 변수, 전략 승률
더 긴 시간 주기의 데이터를 테스트하여 안정성을 검증합니다.
이 전략은 축점 반전 전략과 최소 2배 이동 평균 전략의 장점을 통합하고, 트렌드 반전을 판단하면서 위험을 제어하며, 안정성 전략에 속한다. 이 전략은 구조가 간단하고, 이해하기 쉽고, 테스트하기 쉽고, 양적 거래 초보자 학습과 연습에 적합하다. 그러나 이 전략은 너무 많이하고, 하락 상황을 활용할 수 없다. 이것은 주요 한계이다. 더 많은 지표와 기계 학습과 같은 방법을 도입하여 최적화하면 이 전략의 안정성과 추적 능력을 더욱 강화하여 더 나은 성과를 얻을 수 있다.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@author exlux99
strategy(title = "Pivot Reversal Upgraded long only", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)
/////////////
//time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2031, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//
length = input(title="Length MA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, length, offset)
//LSMA
leftBars = input(3)
rightBars = input(16)
swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond and time_cond? true : (le[1] and high > hprice ? false : le[1])
//leverage
multiplier=input(1.0, step=0.5)
g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)
//entry
strategy.entry("long", strategy.long,c, when=le and close > lsma, comment="long", stop=(hprice + syminfo.mintick) * multiplier)
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
strategy.close("long", when=se)