%R リバースチャネル戦略

作者: リン・ハーンチャオチャン開催日:2023年12月5日 12:04:13
タグ:

img

戦略の概要

Laruent Channelの指標に基づいた逆転取引戦略です.過去の一定の期間における最高値と最低値を計算し,現在の価格が過買いまたは過売り領域にあるかどうかを判断します.価格が上または下レールに近い場合は,反対方向にポジションを開き,価格が中間線に戻るのを待っています.

戦略原則

この戦略は主に2つの指標に基づいています.%R インディケーター (%R)そしてラルーント運河の鉄道.

PercentR インディケーターは,現在の閉店価格と最近で最も高い価格と最も低い価格の間の距離を示します. 値範囲は0から-100です. 0に近い値は,現在の閉店価格が最近最も高い点に近いことを意味します. そして -100に近い値は,現在の閉店価格が最近最も低い価格に近いことを意味します.

ラルーント運河は,上線,中線,下線からなる.上線は,最も最近の期間の最高価格に等しい.下線は,その期間の最低価格に等しい.中線は,上線と下線の平均値である.価格が上線を超えると,過剰購入とみなされる.価格が下線以下であれば,過剰販売とみなされる.

戦略はまず,%R インディケーターそしてラルーント運河の鉄道, 2つの指標を使用して,現在の状態が過買いまたは過売れているかどうかを判断します:

  1. PercentRが-87を下回ると,過剰販売とされます.
  2. PercentR が -20 以上になると,オーバー買いとされます.

現在の状態が過買いでも過売れでもなければ 市場がオープンして 市場が閉まる前には ポジションを閉じます

価格の逆転を把握することで 短期的に利益を得ることができます

利点

  1. 戦略は単純で明快で 分かりやすく実行できます
  2. 過剰購入/過剰販売状態を判断するために PercentR インディケーターを使用することは信頼性があります.
  3. 市場閉じる前に市場を開くオーダーと閉じるオーダーで"日のリスクを回避する.
  4. 逆転取引戦略として,短期的な利益を得るのに適しています.

リスク

  1. 逆転が失敗すれば 利益を得られない
  2. パラメータの設定が不適切で 買い過ぎ/売過ぎ状態を正しく判断できません
  3. 日中取引時間が短すぎると 取引信号が少なくなります

パラメータを最適化したり,注文の配達時間を調整したり,他の指標と組み合わせたりすることでリスクを軽減できます.

最適化

  1. 損失拡大を避けるためにストップ・ロスの線を設定するためにストップ・ロスのメカニズムを導入することができる.
  2. PercentR のパラメータは,過買い/過売り判断をより正確にするために最適化できます.
  3. この戦略は,複数のタイムフレームで同時に複数タイムフレームの取引を実施するために使用できます.
  4. KDJ,MACDなどの他の指標と組み合わせて取引信号をより信頼できるようにします

概要

一般的には,この戦略は非常にシンプルで実用的です.逆転取引のアイデアに基づいて設計され,短期間の頻繁な取引に適しています.最適化のための大きな余地があります.組み合わせのためにより多くの技術指標を導入することができます.また,リスクを制御するために自動ストップ損失メカニズムも確立できます.


/*backtest
start: 2023-11-04 00:00:00
end: 2023-12-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zweiprozent original strategy by larry williams

strategy("Daily PercentR Strategy", overlay=false)
D_High = security(syminfo.tickerid, 'D', high[1])
D_Low = security(syminfo.tickerid, 'D', low[1])
D_Close = security(syminfo.tickerid, 'D', close[1])
D_Open = security(syminfo.tickerid, 'D', open[1])

LowMarker = input(-87,"Low Marker",input.integer)

HighMarker =  input(-20,"High Marker",input.integer)

length = input(title="Length", type=input.integer, defval=3)
src = input(close, "Source", type = input.source)
_pr(length) =>
	max = highest(length)
	min = lowest(length)
	100 * (src - max) / (max - min)
percentR = _pr(length)
obPlot = hline(LowMarker, title="Upper Band", color=#606060)
hline(-50, title="Middle Level", linestyle=hline.style_dotted, color=#606060)
osPlot = hline(HighMarker, title="Lower Band", color=#606060)
fill(obPlot, osPlot, title="Background", color=color.new(#9915ff, 90))
plot(percentR, title="%R", color=#3A6CA8, transp=0)

// Go Long - if percentR is not overbought/sold

ordersize=floor(strategy.equity/close) 

if percentR<HighMarker and percentR>LowMarker
    strategy.entry("Long", strategy.long,comment="Long")

//exit at end of session
if low[0]<high[0]
    strategy.close("Long", comment="exit")
    

もっと