Membeli Isnin Jual Rabu Strategi Dagangan

Penulis:ChaoZhang, Tarikh: 2023-09-12 16:44:53
Tag:

Strategi ini memperdagangkan corak kitaran mingguan dengan memasuki panjang pada hari Isnin ditutup dan mengambil keuntungan sebelum hari Rabu dibuka untuk menangkap perubahan harga semasa tempoh ini.

Logik Strategi:

  1. Melakukan entri panjang setiap hari Isnin.

  2. Ambil keuntungan untuk keluar jauh sebelum setiap hari Rabu dibuka.

  3. Tetapkan peratusan stop loss untuk had kerugian.

  4. Tetapkan peratusan sasaran keuntungan untuk mengunci keuntungan.

  5. Stop plot dan garisan keuntungan untuk visual P&L.

Kelebihan:

  1. Perdagangan berkala mempunyai pengeluaran yang lebih kecil dan pulangan sejarah yang baik.

  2. Peraturan tetap mudah untuk automatik dan dilaksanakan.

  3. Stop loss mudah dan mengambil keuntungan konfigurasi.

Risiko:

  1. Tidak boleh menyesuaikan diri dengan peristiwa yang mengganggu kitaran.

  2. Lagging stop loss Tidak dapat menghadkan kerugian pada perdagangan tunggal.

  3. Terkunci dalam keuntungan tidak dapat menjejaki lebih tinggi.

Ringkasnya, sistem kitaran mekanikal ini mempunyai backtests yang mengagumkan tetapi berjuang untuk menyesuaikan diri apabila corak berubah.


/*backtest
start: 2023-08-12 00:00:00
end: 2023-09-11 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © processingclouds

// @description Strategy to go long at end of Monday and exit by Tuesday close, or at stop loss or take profit percentages  

//@version=5
strategy("Buy Monday, Exit Wednesday", "Mon-Wed Swings",overlay=true)

//  ----- Inputs: stoploss %, takeProfit %
stopLossPercentage = input.float(defval=4.0, title='StopLoss %', minval=0.1, step=0.2) / 100
takeProfit = input.float(defval=3.0, title='Take Profit %', minval=0.3, step=0.2) / 100

//  ----- Exit and Entry Conditions - Check current day and session time
isLong = dayofweek == dayofweek.monday  and not na(time(timeframe.period, "1400-1601"))
isExit = dayofweek == dayofweek.wednesday and not na(time(timeframe.period, "1400-1601"))

//  ----- Calculate Stoploss and Take Profit values
SL = strategy.position_avg_price * (1 - stopLossPercentage)
TP = strategy.position_avg_price * (1 + takeProfit)

//  ----- Strategy Enter, and exit when conditions are met
strategy.entry("Enter Long", strategy.long, when=isLong)
if strategy.position_size > 0 
    strategy.close("Enter Long", isExit)
    strategy.exit(id="Exit", stop=SL, limit=TP)

//  ----- Plot Stoploss and TakeProfit lines
plot(strategy.position_size > 0 ? SL : na, style=plot.style_linebr, color=color.red, linewidth=2, title="StopLoss")
plot(strategy.position_size > 0 ? TP : na, style=plot.style_linebr, color=color.green, linewidth=2, title="TakeProfit")

Lebih lanjut