
この戦略は,複数の指標の組み合わせを使用してトレンドの方向と取引のタイミングを判断し,プレッシャーバランスの方法を使用して取引の勝利率を向上させます.主にMACD,PSAR,EMAの3つの指標を使用して判断し,止損止めと組み合わせて効率的な利益を上げます.
EMAを平均線で計算して,全体的なトレンドの方向を判断する. EMAの値が大きい代表は,現在上昇傾向にあり,EMAの値が小さい代表は,現在下降傾向にある.
MACDを使用して,快線と慢線の差値を計算する.差値が0より大きい場合は,現在上昇傾向にあることを示し,差値が0より小さい場合は,現在下降傾向にあることを示します.
PSARを用いて連続変化点を計算すると,PSAR値が大きい代表が現在下落傾向にあり,PSAR値が小さい代表が現在上昇傾向にある.
上記の3つの指標を組み合わせて,トレンドの一致性を判断する。3つの指標の判断結果が一致するときは,トレンドがより明確であることを代表し,買取または販売操作を行うことができる。
買いと売りの条件に従ってポジションを開き,ストップ・ロスの止まり点を設定し,ストップ・ロスまたはストップ・ロスの条件に達したときにポジションを平定し,利益を達成する.
具体的には以下の通りです.
複数の指標を用いてトレンドを判断し,判断の正確さを向上させる.
プレッシャー・バランス (プレッシャー・バランス) を用いて,トレンドがはっきりしたときにポジションを開き,利益の確率を高めます.
ストップ・ロース・ストップポイントを設定して,損失を制限し,利益をロックします.
取引規則の明瞭なシステム,プログラム化された取引に適した.
パラメータによって最適化され,異なる品種と取引周期に適応することができます.
トレンド判断に誤りがあり,誤った方向にポジションを開く可能性があります.
市場が急激に変動し,指数は誤った信号を発する可能性があります.
ストップポイントが大きすぎると,タイムストップができない.
パラメータの設定が不適切で,取引が頻繁になりすぎたり,時間内にポジションが開けられない場合もある.
取引品の流動性が不足し,計画通り損失を止めてしまうことができない.
パラメータの最適化,ストップ・ストップ・ポイントの調整,流動性の高い取引品種の選択によりリスクを低減することができる.
EMA周期パラメータを調整し,トレンド判断の正確性を最適化する.
MACD快線慢線周期パラメータを調整し,MACD指標の感性を最適化する.
止損ストップの比率パラメータを調整して,止損ストップの最適なバランスを得ます.
他の補助指標を追加して,ポジション開設時の選択の精度を向上させる.
取引品種の選択を最適化し,流動性があり,波動性が大きい品種を選びます.
取引時間周期を異なる品種の市場状況に合わせて調整する
この戦略は,複数の指標を用いてトレンドを判断し,トレンドが明確になったときにポジションを開き,ストップ・ロスを設定することで,市場動向を効果的に把握し,一定利益の保証を前提に比較的理想的な収益を得ることができる.パラメータを最適化し,他の補助指標を追加することで,戦略の安定性と利益レベルをさらに向上させることができる.この戦略の取引規則は,わかりやすく,プログラム化された取引に適しています.
/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
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/
// © exlux99
//@version=4
strategy(title = "Crypto Scalper", 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.03)
len = input(60, minval=1, title="Length EMA")
src = input(close, title="Source")
out = ema(src, len)
//
fast_length = input(title="Fast Length MACD", type=input.integer, defval=12)
slow_length = input(title="Slow Length MACD", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Oscillator MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
sma_signal = input(title="Signal Line MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := min(AF + increment, maximum)
else
if low < EP
EP := low
AF := min(AF + increment, maximum)
if uptrend
SAR := min(SAR, low[1])
if bar_index > 1
SAR := min(SAR, low[2])
else
SAR := max(SAR, high[1])
if bar_index > 1
SAR := max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
tplong=input(0.245, step=0.005)
sllong=input(1.0, step=0.005)
tpshort=input(0.055, step=0.005)
slshort=input(0.03, step=0.005)
if (uptrend and hist >0 and close < out)
strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short")
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')
if (not uptrend and hist <0 and close > out)
strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long")
strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closelong')