月初めに購入し、月末に決済する戦略


作成日: 2023-11-02 14:23:40 最終変更日: 2023-11-02 14:23:40
コピー: 0 クリック数: 619
1
フォロー
1617
フォロワー

月初めに購入し、月末に決済する戦略

この戦略の核心思想は,毎月の最初の取引日にポジションを上げ,最後の取引日にポジションを低くするということです. これは,主に教科演習に使用される非常に単純な戦略です.

戦略原則

この戦略は,まず,毎月の最初の取引日 ((月曜日) を開設シグナルとして,最後の取引日 ((金曜日) を平仓シグナルとして定義する.

ポジション開設時に,開設された場合のみ多額の設定をすると,直接多額の設定をします.空白が許可された場合,同時にポジションを開設すると多額の空白をします.

ポジションを平坦にすると,空白が許される場合は,全ポジションを平坦化します. 余分な場合は,余分なポジションを平坦化します.

リスクを制御するために,戦略には簡単なストップ・ロスの設定も追加された. 価格がストップ・ロスの価格に触れたときに,強制的に平仓を停止する.

概して,この戦略の考え方は非常にシンプルで,最も基本的な月間取引戦略の1つであり,教科用デモンストレーションに適しています.実用的には,入場出場信号,止損方法などに自分の必要に応じて最適化することができます.

戦略的優位性

  1. シンプルで直感的で,初心者向けです.

  2. 月間保有,低取引頻度で安定した投資家に適しています.

  3. 余分な空白は,異なるスタイルのトレーダーに適したオプションです.

  4. ストップ・ローズ機能が追加され,個人株のリスクを一定程度にコントロールできます.

戦略リスク

  1. 入場出場時間は固定で,市場の状況に合わせて調整できない.競売される可能性もある.

  2. 測定基準の判断が加わらないと, 盲目追跡の危険性があります.

  3. 単一株のストップは突破しやすいため, Tail Riskを効果的に制御することはできません.

  4. ポジションは固定で,市場の状況に応じてポジションを調整することはできません.

  5. 取引の不確実性は,戦略を完全に実行できない可能性があります.

  6. 単純なストップは,小ストップにつながる可能性があるので,ボラティリティストップなどのダイナミックストップを採用すべきである.

戦略最適化の方向性

  1. 市場状況を判断する定量指標を導入し,ポジション開設のペースを動的に調整することができる.

  2. 基準指数と比較して,個々の株の相対的に強い弱点を選択することを考慮する.

  3. 市場変動などのリスク指標に基づいてポジションを動的に調整する.

  4. ダイナミック・ストーピング,または多くのレベルのストーピング.

  5. アルゴリズムの取引モジュールに追加し,取引信号の取引を保証します.

  6. 資金管理戦略の最適化,異なる市場環境に対する株式指数期貨ポジションの調整.

  7. マシン・ラーニングを組み合わせて,株の質を判断し,入場する株を選びます.

要約する

この戦略は,非常に基本的な月初めの買い終末の平仓戦略であり,論理はシンプルで,容易に理解し,初心者の学習に適しています.しかし,実際の適用では,入場出場時間,損失停止方法,ポジション管理などの最適化が必要で,複雑な変動する市場で継続的に利益を得ることができます.我々は戦略の優劣を深く理解し,戦略システムを絶えず改善し,自分の適した量化取引方案を開発する必要があります.

ストラテジーソースコード
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Je_Buurman September 1st 2020

//@version=4
strategy("Buurmans Tutorial", overlay=true, initial_capital=1000, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.2)

// Some initial inputs, these are needed in case the strategy returns an error of "too many trades, > 3000" 

Year    = input(defval = 2020, title = "From Year", minval = 2010)              // 
Month   = input(defval = 1, title = "From Month", minval = 1, maxval=12)
LongOnly=input(true, title="Only go Long?")


// Phase I - the initial "Strategy" - buy Monday, sell Friday

longCondition = dayofweek==dayofweek.monday and (time > timestamp(Year, Month, 01, 00, 00, 00))
shortCondition = dayofweek==dayofweek.friday and (time > timestamp(Year, Month, 01, 23, 59, 59))


// Phase II - some rudimentary "risk-management" e.g. stoploss

Use_stoploss=input(false, title="Use stoploss ?")
stoploss_input=input(150, title="Stoploss in $")
Stoploss = Use_stoploss ? strategy.position_size>0 ? iff(strategy.position_size>0,strategy.position_avg_price - stoploss_input, na) : strategy.position_size<0 ? iff(strategy.position_size<0,strategy.position_avg_price + stoploss_input, na) : na : na
plot(Use_stoploss and strategy.position_size!=0 ? Stoploss : na, color=iff(Stoploss!=na,color.silver, color.red),style=plot.style_linebr)


// Phase III - make it more profitable by trying to filter conditions
// only buy on odd Mondays ? only buy on full moon Mondays ? something else entirely ?


// The actual trades, going Long, close Long, going Short and Stoploss

if (longCondition)
    strategy.entry("Buy on Monday", strategy.long)
    
if (shortCondition and LongOnly==false)
    strategy.entry("Short on Friday", strategy.short)

if (shortCondition and LongOnly)
    strategy.close("Buy on Monday", comment="Sell on Friday")

if (low < Stoploss)
    strategy.close("Buy on Monday", comment="Long Stopped on Someday")
if (high > Stoploss)
    strategy.close("Short on Friday", comment="Short Stopped on Someday")