この戦略の主なアイデアは,当日の閉店時に購入し,価格が購入価格よりも高くなった場合,翌日に開店時に売却すること,そうでなければ,ストップ損失または利益を得るまで保持し続けることです.
この戦略は,まず200日間の単純な移動平均値を市場状態指標として設定し,価格が200日線を超える場合にのみ取引を許可する. 購入時間は毎日の閉店前の最後の半時間,販売時間は次の開店後の最初の半時間に設定される. 市場状態が購入時間中に要件を満たしたとき,購入する市場オーダーを配置する. 販売時間中に,価格が購入価格よりも高いかどうかを確認し,そうであれば,販売し利益を得るために市場オーダーを配置し,そうでなければ,明日のストップ損失または利益を得るまで保持し続けます. また,損失を制限するために5%ストップ損失ラインを設定します.
この戦略には以下の利点があります.
閉店時に価格変動とギャップが大きい閉店効果を利用する.次の開店価格は大きな振動を持つ可能性があります.
短期保有期間により リスクを減らすため ストップ・ロストと利益の迅速な取り込みが可能です
論理はシンプルで 分かりやすく 実行できます
リスク管理のためのストップ・ロースラインと市場状態指標の柔軟な設定
リスクもあります:
閉じる価格で購入すると,高価格のポジションを取ることができ,損失リスクが増加します.
短期間持たせると 簡単に捕まるようになります 次の日に上下する制限はありません
それは大きなギャップに依存し,常に形成されず,損失や捕らえたポジションにつながります.
間違ったシンボルの選択は 複数の損失につながる可能性があります
解決策:
技術指標を組み合わせて,閉店時に相対的な底値で購入することを保証する.
保持期間を2~3日延長する
有効な脱出時にのみ購入します.
慎重にシンボルを選択して 上昇傾向のシンボルを選択します
戦略は以下の側面で最適化できます.
購入信号の技術指標を追加して 確実性を高める
利得の最適な時期を見つけるために 異なる保持期間をテストします
ストップ・ロスの線を最適化して 最適のストップ・ロスのポイントを見つけます
異なるシンボルと市場環境でパフォーマンスをテストし,ダイナミックなシンボルとポジション管理を採用します.
この戦略は,迅速なストップ損失/利益取引のための閉じるギャップ効果を利用した明確な論理を持っています. 実行し理解しやすいです. しかし,高トラップリスクもあります. ポジションサイズ,ストップ損失管理,ストックピックは重要です. 購入確実性,最適な保持期間,ストップ損失ポイント,およびリスクを制御しながら安定性と収益性を向上させるダイナミックなポジションサイズを改善することでさらに最適化することができます.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // © HermanBrummer // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ strategy("M8 BUY @ END OF DAY", "", 1) /// BUYS AT THE END OF THE DAY /// SELLS THE NEXT MORNING IF PRICE IS HIGHER THEN THE ENTRY PRICE /// IF PRICE IS NOT HIGHER THEN IT WILL KEEP THE POSITION AND WAIT FOR EITHER A STOP OUT OR FOR PRICE TO BE HIGHER THAN THE ENTRY /// USES A 5% STOP LOSS ON THE REDLINE -- SETTABLE IN SETTINGS /// USES A 200 DAY MARKET FILTER -- SETTABLE IN SETTINGS -- IMPORTS DATA FROM HIGHER TIMEFRAME, BUT USES CLOSE[2] << SO THIS IS FIXED, NON-REPAITING DATA MarketFilterLen = input(200) StopLossPerc = input(.95, step=0.01) buyTime = time(timeframe.period, "1429-1500") sellTime = time(timeframe.period, "0925-0935") F1 = close > sma(security(syminfo.tickerid, "D", close[2]), MarketFilterLen) // HIGH OF OLD DATA -- SO NO REPAINTING enter = buyTime and F1 exit = sellTime StopLossLine = strategy.position_avg_price * StopLossPerc plot(StopLossLine, "StopLossLine", color.new(#FF0000, 50)) strategy.entry("L", true, when=enter) strategy.exit("StopLoss", stop=StopLossLine ) if close > strategy.position_avg_price strategy.close("L", when=exit) barcolor(strategy.opentrades != 0 ? color.new(color.yellow, 0) : na )