極端な短期的なスキルピング戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-17 12:06:39
タグ:

img

概要

極端な短期スカルピング戦略は,価格がサポートラインに近づいたり突破したときにショートポジションを確立し,非常に小さなストップロスを設定し,高頻度取引のために利益レベルを取ることを試みます.この戦略は,短期的な価格突破を活用して市場変動を把握して利益を得ます.

戦略の論理

ストラテジーは,まず価格の線形回帰線を計算する.実際の閉じる価格が予測された閉じる価格よりも低い場合,ロングポジションが確立される.実際の閉じる価格が予測された閉じる価格よりも高い場合,ショートポジションが確立される.ストップ損失と利益を取ることは非常に少数のピップに設定される.戦略は,ロング,ショートのみまたは全方向取引を選択することを可能にする.

主要なパラメータは以下の通りです.

  • ソース価格:閉店価格
  • 線形回帰線の長さ: 14
  • オフセット: 1
  • 取引方向:すべて/ただ買い/ただ売る
  • ストップ・ロストと収益をピップで表す:非常に小さい固定ピップまたは最小のティックピップ

この戦略の主な考え方は,移動平均値の短期的な価格突破を捕捉することです.価格がサポートまたはレジスタンスラインに近づいたり突破したりすると,タイミングでポジションを確立します.そして,非常に小さなストップロスを設定し,利益を得るために利益を得て,すぐにポジションを閉じ,プロセスを繰り返します.

利点分析

この戦略には以下の利点があります.

  1. 高周波取引に適した高周波取引は,より短期的な価格変動を捉える
  2. 非常に小さなストップ損失と利益を取ることは,単一の損失を制御するのに役立ちます.
  3. 柔軟に取引方向を選択し,異なる市場環境に適応できる
  4. シンプルな論理で実行しやすい

リスク分析

リスクもあります:

  1. 価格格差が損失を増やす可能性がある
  2. 高額な取引コスト
  3. 信号の誤りが発生し,迅速に注意と最適化が必要です.
  4. 継続的な市場モニタリングが必要です

対応するリスク管理対策には,次のものがあります.

  1. オブナイト取引を無効にする
  2. ストップ・ロスの最適化と,取引コストの影響を減らすために利益を引き出す
  3. 誤った信号を減らすためにパラメータをテストし最適化します
  4. 市場に注意を払う

オプティマイゼーションの方向性

さらに最適化方向は以下の通りである.

  1. 他の指標を追加してシグナルをフィルターし,間違った取引を減らす
  2. ストップ・ロスを動的に調整し,利益を取ります.
  3. オーバーフィッティングを減らすためにパラメータを最適化
  4. 合理的なストップ・ロストと得益設定の為,取引コストの影響を考慮する
  5. 製品と時間枠の間のテスト安定性

概要

極短期のスカルピング戦略は,典型的な高周波取引戦略である.主要価格水準の周りにポジションを確立し,非常に小さなストップロスを設定し,利益を得ることで,短期間の価格変動を把握する.高い収益を達成できるが,一定のリスクもある.継続的なテストと最適化により,戦略は安定性と収益性のためにさらに強化することができる.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Extreme Scalping", overlay=true )
src = input(close,title="Source")
len = input(defval=14, minval=1, title="Length")
offset = input(1)
out = linreg(src, len, offset)
plot(out)

gap_tick=input(100)
fixedTP=input(300)
fixedSL=input(100)
useFixedSLTP=input(true)
direction=input(defval="ALL",title="Direction of order",options=["ALL","BUY ONLY","SELL ONLY"])
gap=gap_tick*syminfo.mintick
plot(out+gap,color=color.red)
plot(out-gap,color=color.green)

tp=useFixedSLTP?fixedTP:gap_tick
sl=useFixedSLTP?fixedSL:gap_tick

longCondition = close<(out-gap) and (direction=="ALL" or direction=="BUY ONLY")
shortCondition = close>(out+gap) and (direction=="ALL" or direction=="SELL ONLY")

if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("exit long","Long",profit = tp,loss = sl)
    

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("exit short","Short",profit =tp,loss=sl)
    
// === Backtesting Dates === thanks to Trost

// testPeriodSwitch = input(true, "Custom Backtesting Dates")
// testStartYear = input(2019, "Backtest Start Year")
// testStartMonth = input(10, "Backtest Start Month")
// testStartDay = input(3, "Backtest Start Day")
// testStartHour = input(0, "Backtest Start Hour")
// testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
// testStopYear = input(2019, "Backtest Stop Year")
// testStopMonth = input(12, "Backtest Stop Month")
// testStopDay = input(31, "Backtest Stop Day")
// testStopHour = input(23, "Backtest Stop Hour")
// testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
// testPeriod() =>
//     time >= testPeriodStart and time <= testPeriodStop ? true : false
// isPeriod = testPeriodSwitch == true ? testPeriod() : true
// // === /END

// if not isPeriod
//     strategy.cancel_all()
//     strategy.close_all()
        

もっと