Strategi Perdagangan Mengikuti Tren Jangka Panjang Alligator

SMMA SMA
Tanggal Pembuatan: 2024-05-17 15:40:13 Akhirnya memodifikasi: 2024-05-17 15:40:13
menyalin: 4 Jumlah klik: 718
1
fokus pada
1617
Pengikut

Strategi Perdagangan Mengikuti Tren Jangka Panjang Alligator

Ringkasan

Strategi perdagangan alligator jangka panjang adalah strategi perdagangan kuantitatif yang didasarkan pada indikator Williams Alligator. Strategi ini menggunakan kombinasi rata-rata bergerak dari periode yang berbeda untuk menangkap tren utama di pasar, yang berlaku untuk perdagangan alligator jangka menengah dan panjang. Gagasan utama strategi ini adalah untuk menilai arah dan kekuatan tren dengan arah bukaan indikator Alligator dan posisi harga relatif terhadap indikator Alligator, sehingga membuat keputusan perdagangan.

Prinsip Strategi

Strategi perdagangan jangka panjang Alligator menggunakan tiga periode rata-rata bergerak untuk membangun indikator Alligator, yaitu:

  1. Jaw line: 13 siklus SMMA, bergeser ke masa depan 8 akar K line
  2. Garis Teeth: 8 siklus SMMA, bergeser ke masa depan 5 garis K
  3. Lips line: 5 siklus SMMA, ke masa depan 3 akar K line

Strategi ini akan membuka posisi lebih banyak ketika Alligator terbuka ke arah atas, yaitu Jaw di bagian bawah, Teeth di tengah, dan Lips di bagian atas, sementara harga berada di atas Alligator. Ini menunjukkan bahwa gelombang tren ke atas telah dikonfirmasi, dan kami ingin memegang posisi ini sampai akhir tren.

Jika harga turun di bawah garis Jaw, strategi ini akan meratakan lebih banyak opsi. Ini dapat menjamin bahwa kita tidak akan terus memegang posisi di pasar beruang.

Keunggulan Strategis

  1. Cocok untuk perdagangan jangka menengah dan panjang: Strategi ini didasarkan pada indikator Alligator, yang dapat secara efektif menangkap tren utama pasar, sangat cocok untuk perdagangan jangka menengah dan panjang.
  2. Frekuensi perdagangan yang rendah: Strategi hanya membuka posisi saat konfirmasi tren terbentuk, posisi kosong pada akhir tren, frekuensi perdagangan yang relatif rendah, dapat secara efektif mengurangi biaya perdagangan.
  3. Rentang aplikasi: Strategi ini dapat diterapkan di berbagai pasar keuangan, seperti forex, cryptocurrency, dan lain-lain, dengan kemampuan adaptasi dan fleksibilitas yang sangat kuat.
  4. Tidak perlu mengoptimalkan parameter: strategi sepenuhnya mengikuti tren pasar, tidak perlu mengoptimalkan parameter, mudah digunakan.

Risiko Strategis

  1. Potensi risiko slippage: Dalam situasi pasar yang sangat berfluktuasi atau kurangnya likuiditas, pesanan perdagangan mungkin tidak dapat diperdagangkan dengan harga yang diharapkan, yang menyebabkan risiko slippage.
  2. Kurangnya pengelolaan risiko tetap: Strategi ini tidak memiliki pengaturan pengelolaan risiko tetap dan perlu menyesuaikan ukuran posisi setiap perdagangan sesuai dengan preferensi risiko Anda sendiri.
  3. Mungkin melewatkan peluang jangka pendek: Beberapa peluang perdagangan jangka pendek mungkin terlewatkan karena strategi berfokus pada menangkap tren jangka menengah dan panjang.

Arah optimasi strategi

  1. Menambahkan modul manajemen risiko: Anda dapat mempertimbangkan untuk menambahkan beberapa langkah manajemen risiko, seperti stop loss, penyesuaian posisi dinamis, dan sebagainya, untuk mengendalikan risiko dengan lebih baik.
  2. Kombinasi dengan indikator teknis lainnya: Anda dapat mencoba menggabungkan indikator Alligator dengan indikator teknis lainnya, seperti RSI, MACD, dll, untuk meningkatkan akurasi dan keandalan strategi.
  3. Pengaturan parameter optimasi: Meskipun tidak perlu mengoptimalkan parameter untuk strategi ini, Anda dapat mencoba untuk melakukan pengujian ulang pada periode waktu dan indikator perdagangan yang berbeda untuk menemukan kombinasi parameter yang optimal.

Meringkaskan

Strategi perdagangan Alligator yang mengikuti tren jangka panjang adalah strategi perdagangan kuantitatif yang sederhana, mudah digunakan, dan luas. Dengan menggunakan indikator Alligator untuk menangkap tren utama pasar, strategi ini dapat menghasilkan keuntungan yang stabil dalam jangka menengah dan panjang. Meskipun ada beberapa risiko potensial dalam strategi ini, kinerja dan stabilitas strategi dapat ditingkatkan lebih lanjut dengan menambahkan modul manajemen risiko, menggabungkan indikator teknis lainnya, dan menyetel parameter yang dioptimalkan.

Kode Sumber Strategi
/*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>