Sumber daya yang dimuat... Pemuatan...

Alligator Tren Jangka Panjang Mengikuti Strategi Perdagangan

Penulis:ChaoZhang, Tanggal: 2024-05-17 15:40:13
Tag:SMMASMA

img

Gambaran umum

Prinsip Strategi

Alligator Long-Term Trend Following Trading Strategy menggunakan tiga rata-rata bergerak dengan periode yang berbeda untuk membangun indikator Alligator, yaitu:

  1. Jalur rahang: SMMA 13 periode, bergeser 8 bar ke masa depan
  2. Garis bibir: SMMA 5 periode, bergeser 3 bar ke masa depan

Ketika harga menembus garis Jaw, strategi akan menutup posisi panjang. Ini memastikan bahwa kita tidak akan terus memegang posisi di pasar bear.

Keuntungan Strategi

  1. Cocok untuk perdagangan jangka menengah hingga panjang: Strategi ini didasarkan pada indikator Alligator, yang dapat secara efektif menangkap tren utama di pasar, menjadikannya sangat cocok untuk tren jangka menengah hingga panjang setelah perdagangan.
  2. Frekuensi perdagangan yang rendah: Strategi hanya membuka posisi ketika tren dikonfirmasi dan menutup posisi ketika tren berakhir, menghasilkan frekuensi perdagangan yang relatif rendah, yang dapat secara efektif mengurangi biaya perdagangan.
  3. Berbagai aplikasi: Strategi dapat diterapkan pada berbagai pasar keuangan, seperti forex, cryptocurrency, dll, dengan kemampuan beradaptasi dan fleksibilitas yang kuat.
  4. Tidak perlu optimasi parameter: Strategi sepenuhnya mengikuti tren pasar dan tidak memerlukan optimasi parameter, membuatnya sederhana dan mudah digunakan.

Risiko Strategi

  1. Kurangnya manajemen risiko tetap: Strategi tidak memiliki pengaturan manajemen risiko tetap, dan ukuran posisi setiap perdagangan perlu disesuaikan sesuai dengan preferensi risiko seseorang.
  2. Kemungkinan kesempatan jangka pendek yang terlewatkan: Karena strategi berfokus pada menangkap tren jangka menengah hingga jangka panjang, mungkin kehilangan beberapa peluang perdagangan jangka pendek.

Arah Optimasi Strategi

  1. Menambahkan modul manajemen risiko: Pertimbangkan untuk menambahkan beberapa langkah manajemen risiko, seperti stop loss, penyesuaian posisi dinamis, dll, untuk mengendalikan risiko dengan lebih baik.
  2. Mengoptimalkan pengaturan parameter: Meskipun strategi tidak memerlukan optimasi parameter, Anda dapat mencoba backtesting periode waktu yang berbeda dan target perdagangan untuk menemukan kombinasi parameter yang optimal.

Ringkasan

Alligator Long-Term Trend Following Trading Strategy adalah strategi perdagangan kuantitatif yang sederhana, mudah digunakan, dan dapat diterapkan secara luas. Dengan memanfaatkan indikator Alligator untuk menangkap tren utama di pasar, strategi dapat mencapai pengembalian yang stabil dalam jangka menengah hingga panjang. Meskipun strategi ini memiliki beberapa risiko potensial, dengan menambahkan modul manajemen risiko, menggabungkan dengan indikator teknis lainnya, dan mengoptimalkan pengaturan parameter, kinerja dan stabilitas strategi dapat ditingkatkan.


/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//_______ <licence>
// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Skyrex

//_______ <version>
//@version=5

//_______ <declaration_statement>
strategy(title = "Alligator Long Term Trend Following Strategy [Skyrex.io]", 
         shorttitle = "Alligator Strategy [Skyrex.io]", 
         overlay = true, 
         format = format.inherit, 
         pyramiding = 1, 
         calc_on_order_fills = false, 
         calc_on_every_tick = true, 
         default_qty_type = strategy.percent_of_equity, 
         default_qty_value = 100, 
         initial_capital = 10000, 
         currency = currency.NONE,  
         commission_type = strategy.commission.percent, 
         commission_value = 0.1,
         slippage = 5)


//_______ <constant_declarations>
var color skyrexGreen = color.new(#2ECD99, 0)
var color skyrexGray = color.new(#F2F2F2, 0)
var color skyrexWhite = color.new(#FFFFFF, 0)

var color barcolor = na


//_______ <inputs>
// Trading bot settings
sourceUuid = input.string(title = "sourceUuid:", defval = "yourBotSourceUuid", group = "Trading Bot Settings")
secretToken = input.string(title = "secretToken:", defval = "yourBotSecretToken", group = "Trading Bot Settings")

// Trading Period Settings
lookBackPeriodStart = input(title = "Trade Start Date/Time", defval = timestamp('2023-01-01T00:00:00'), group = "Trading Period Settings")
lookBackPeriodStop = input(title = "Trade Stop Date/Time", defval = timestamp('2025-01-01T00:00:00'), group = "Trading Period Settings")

//_______ <function_declarations>
//@function       Used to calculate Simple moving average for Alligator
//@param src      Sourse for smma Calculations
//@param length   Number of bars to calculate smma
//@returns        The calculated smma value 
smma(src, length) =>
    smma =  0.0
    smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length
    smma


//@function       Used to decide if current candle above the Alligator
//@param jaw      Jaw line of an Alligator
//@param teeth    Teeth line of an Alligator
//@param lips     Lips line of an Alligator
//@returns        Bool value  
is_LowAboveAlligator(jaw, teeth, lips) =>
    result = low > jaw and low > lips and low > teeth 
    result


//@function       Used to decide if current candle below the Alligator
//@param jaw      Jaw line of an Alligator
//@param teeth    Teeth line of an Alligator
//@param lips     Lips line of an Alligator
//@returns        Bool value  
is_HighBelowAlligator(jaw, teeth, lips) =>
    result = high < jaw and high < lips and high < teeth 
    result


//@function       Used to decide if Alligator's mouth is open
//@param jaw      Jaw line of an Alligator
//@param teeth    Teeth line of an Alligator
//@param lips     Lips line of an Alligator
//@returns        Bool value 
is_AlligatorHungry(jaw, teeth, lips) =>
    result = lips > jaw[5] and lips > teeth[2] and teeth > jaw[3]
    result


//_______ <calculations>
jaw = smma(hl2, 13)[8]
teeth = smma(hl2, 8)[5]
lips = smma(hl2, 5)[3]


jaw_o = smma(hl2, 13)
teeth_o = smma(hl2, 8)
lips_o = smma(hl2, 5)


//_______ <strategy_calls>
longCondition = is_LowAboveAlligator(jaw, teeth, lips) and is_AlligatorHungry(jaw_o, teeth_o, lips_o) 
if (longCondition)
    strategy.entry(id = "entry1", direction = strategy.long, alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "entry1",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')

if close < jaw
    strategy.close(id = "entry1", alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "close",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')



//_______ <visuals>
if strategy.opentrades > 0
    barcolor := skyrexGreen
else 
    barcolor := skyrexGray

barcolor(barcolor)
//_______ <alerts>

Berkaitan

Lebih banyak