セットアップインディケーターはトム・デマークによって作成され,これは私が後で公開する彼のシーケンスインディケーターの多くのステップの1つです. みなさん,私のデマーク逆転点スクリプトを本当に気に入ったようです. このインディケーターはそれと非常に似ています. このインディケーターは,小さなトレンド逆転のために設計されました. 私の例グラフでご覧のとおり,それは多くの買い売り信号を提供します. もちろん,すべてが完璧ではありません. しかし,それは全体的に小さな価格逆転を特定するのにかなり良い仕事です. このインディケーターは,価格逆転点を決定するために一定の時間間にわたって存在するダウントレンドまたはアップトレンドを探しています.
この指標が気に入ったら教えて下さい.私はもっと多くのデマーク指標,あるいは少なくとも私のバージョンを公開し続けます.
バックテスト
/*backtest start: 2022-04-30 00:00:00 end: 2022-05-29 23:59:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Copyright (c) 2019-present, Franklin Moormann (cheatcountry) // Demark Setup Indicator [CC] script may be freely distributed under the MIT license. study("Demark Setup Indicator [CC]", overlay=true) inp = input(title="Source", type=input.source, defval=close) res = input(title="Resolution", type=input.resolution, defval="") rep = input(title="Allow Repainting?", type=input.bool, defval=false) bar = input(title="Allow Bar Color Change?", type=input.bool, defval=true) src = security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1] length = input(title="Length", type=input.integer, defval=4, minval=1) uCount = 0, dCount = 0 for i = 0 to length - 1 uCount := uCount + (nz(src[i]) > nz(src[i + length]) ? 1 : 0) dCount := dCount + (nz(src[i]) < nz(src[i + length]) ? 1 : 0) dsi = dCount == length ? 1 : uCount == length ? -1 : 0 sig = dsi > 0 or uCount > dCount ? 1 : dsi < 0 or dCount > uCount ? -1 : 0 dsiColor = sig > 0 ? color.green : sig < 0 ? color.red : color.black alertcondition(crossover(dsi, 0), "Buy Signal", "Bullish Change Detected") alertcondition(crossunder(dsi, 0), "Sell Signal", "Bearish Change Detected") barcolor(bar ? dsiColor : na) plotshape(crossover(dsi, 0), "Buy", shape.labelup, location.belowbar, color.green, text="Buy", textcolor=color.white) plotshape(crossunder(dsi, 0), "Sell", shape.labeldown, location.abovebar, color=color.red, text="Sell", textcolor=color.white) if crossover(dsi, 0) strategy.entry("Enter Long", strategy.long) else if crossunder(dsi, 0) strategy.entry("Enter Short", strategy.short)