これは,1日間の高低点,移動平均値,およびボリュームを組み合わせた簡単な日中取引戦略です.主なアイデアは,前日の高低点,移動平均値の方向,および資金の流れの突破をエントリー信号として利用することです.
この戦略は主に以下の指標に基づいています
日々の高値/低値:前取引日の最高値と最低値を,ブレイク判断の基準として記録する.
移動平均: 特定の期間の閉値の移動平均を,全体的な傾向の基準として計算する.
資金の流入と流出を決定するために,一定期間における資金の流入と流出の標準化された長/短値を計算する.
特別取引規則は次のとおりです.
ロング条件:前日の高値を突破し,閉じる値が移動平均値以上で,金銭流通量が正であれば,ロングします.
ロングポジションを閉じる: ローングポジションが移動平均値を下回ると,ロングポジションを閉じる.
ショート条件:前日の低値を突破し,閉じる値が移動平均を下回り,金銭流通量がマイナスになるとショートします.
ショートポジションを閉じる: ショートポジションが移動平均値を超えると,ショートポジションを閉じる.
この戦略は,ブレイクアウト,トレンド,資本流動を包括的に考慮し,誤ったブレイクアウトノイズを効果的にフィルタリングできる完全な判断システムを形成します.しかし,それは日中のデータに基づいてのみ決定を行うため,それは短期的な取引戦略です.
この高/低ブレイク戦略には以下の利点があります.
論理はシンプルで直感的で 分かりやすく実行できます
前日の高低点を突破すれば より強い力の方向を把握できます
移動平均値でフィルタリングすることで,多くの騒音信号が回避されます.
資本流動指標は,力の長/短分布を決定するのに役立ちます.
日中取引は複数の取引を通じて利益を蓄積することができます.
複雑なパラメータ最適化も不要で,比較的簡単に実装できます.
柔軟性のある異なる製品に適用できます.
戦略のアイデアは単純で明確で,実行に困難がほとんどなく,かなりの利益の可能性があります.
この戦略には多くの利点がありますが,いくつかのリスクもあります.
高値/低値のブレイクに頼ることは,誤ったブレイクによる損失を引き起こす可能性があります.
日中取引に過度に依存し,一夜間の出来事によって容易に影響を受ける.
移動平均値の遅れは,トレンドターニングポイントを見逃す可能性があります.
ボリュームインジケーターは 時々間違った信号を与えます.
単一の賭けの損失量を適切に制御できず,過剰な損失のリスクがあります.
日中取引の頻度は,取引コストの影響を受けます.
制限された最適化空間は 持続的なアルファを達成するのが困難です
全体的に,この戦略は高い信号周波数を持っているが,安定性と収益性は証明されていない.
この戦略は,次の側面においてさらに最適化することができる.
シングルベットのリスクを制御するためにストップロスを追加します.
移動平均のパラメータを最適化して 感度やスムーズさを高めます
資本流の判断を良くするために 異なる量指標を試してください
偽脱出の確率を減らすために フィルターを追加します
過剰な取引を避けるため,より長い時間枠で戦略を実行します.
適応信号生成のための機械学習を導入する
意思決定のためのより多くのデータ,例えばニュース,マクロ等を組み込む
安定性とリスクを包括的に評価し,過剰な利益を追求しない.
概要すると,これは簡単で直感的な高/低ブレイクアウト戦略であり,価格・ボリューム関係とトレンド判断に焦点を当てています.いくつかのメリットがありますが,さらなる最適化と検証を必要とするリスクもあります.適切にリスク管理された場合,これは実践的な短期戦略のアイデアです. しかし,より効率的で堅牢な戦略にはより多くのモデリング要因と厳格なバックテストが必要です.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=5 strategy(title='Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1) ////////////////////////////GENERAL INPUTS////////////////////////////////////// len = input.int(24, minval=1, title='Length MA', group='Optimization paramters') src = input.source(close, title='Source MA', group='Optimization paramters') out = ta.ema(src, len) length = input.int(20, minval=1, title='CMF Length', group='Optimization paramters') ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume mf = math.sum(ad, length) / math.sum(volume, length) f_secureSecurity(_symbol, _res, _src) => request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on) pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high) pricelow = f_secureSecurity(syminfo.tickerid, 'D', low) plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0)) plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0)) short = ta.crossunder(low, pricelow) and close < out and mf < 0 long = ta.crossover(high, pricehigh) and close > out and mf > 0 if short and barstate.isconfirmed strategy.entry('short', strategy.short, when=barstate.isconfirmed, stop=pricelow[1]) strategy.close('short', when=close > out) if long and barstate.isconfirmed strategy.entry('long', strategy.long, when=barstate.isconfirmed, stop=pricehigh[1]) strategy.close('long', when=close < out)