月間開設長期と月末閉会戦略

作者: リン・ハーンチャオチャン,日付: 2023年11月2日 14:23:40
タグ:

img

この戦略の基本理念は,毎月の最初の取引日にロングポジションを開き,最後の取引日にロングポジションを閉じることです.これは非常にシンプルな戦略で,主に教材のデモのために使用されます.

戦略の論理

この戦略では,まず,毎月の最初の取引日 (月曜日) をエントリー・シグナル,最後の取引日 (金曜日) を出口・シグナルとして定義します.

ポジションを開くとき,ただlongが有効であれば直接ロングになり,ショートが有効であればロングとショートの両方をオープンします.

ポジションを閉じるときは,ショートが許されている場合,すべてのポジションを閉じ,ロングが許されている場合だけロングを閉じます.

リスクをコントロールするために,簡単なストップ・ロスは追加されます.価格がストップ・ロスの価格に触ると,ストップ・ロスのསྒོ་ནས་ポジションを閉じる.

基本的には,この戦略は非常にシンプルで直接的な論理を持っています.これは,指導デモに適した最も基本的な月間取引戦略です.実際の使用では,入口と出口信号,ストップ損失方法など,ニーズに応じて最適化できます.

利点

  1. 論理は単純で理解しやすいし,初心者が学ぶのに非常に適している.

  2. 月間保有サイクルを採用し,低運用頻度で,安定を求める投資家に適しています.

  3. 選択的な長または短,異なる取引スタイルのニーズを満たすことができます.

  4. ストップ・ロスを追加することで 単一株のリスクを一定程度制御できます

リスク

  1. 固定入入出時間で,市場状況に合わせて調整できないため,仲介される危険性があります.

  2. 定量指標が加えられず 盲目的に追随する危険性があります

  3. 単一のストップ・ロスは 簡単に突破できるし 尾行リスクを効果的にコントロールできない

  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")

もっと