
Strategi Lion’s Crack Equilibrium adalah strategi perdagangan short line sederhana yang didasarkan pada persilangan rata-rata. Strategi ini terutama menggunakan dua rata-rata bergerak, melakukan lebih banyak ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat dari bawah; posisi yang sama ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat dari atas.
Strategi ini menggunakan dua rata-rata bergerak: rata-rata bergerak cepat kecil MAPeriod dan rata-rata bergerak lambat besar MAPeriod. Dua rata-rata bergerak membentuk saluran harga, di bawah saluran adalah rata-rata bergerak cepat, di atas saluran adalah rata-rata bergerak lambat.
Secara khusus, strategi pertama menghitung fast moving average smallMA dan slow moving average bigMA. Kemudian menghitung buy-in line buyMA di bawah channel, yang merupakan ((100 - percentBelowToBuy) % dari slow moving average. Ketika fast moving average smallMA melintasi buy-in line buyMA dari bawah, lakukan over; ketika profit mencapai 1% atau tidak profit tetapi memegang posisi 7 K line, posisi kosong.
Kesimpulannya, strategi ini menangkap celah-celah yang ada di garis rata-rata, yaitu peluang untuk menembus bagian bawah saluran, dengan tujuan untuk mendapatkan keuntungan dalam jangka pendek. Pada saat yang sama, strategi ini mengatur kondisi stop dan stop loss untuk mengontrol risiko perdagangan tunggal.
Strategi ini memiliki keuntungan sebagai berikut:
Konsepnya sederhana, mudah dipahami dan diterapkan. Penggunaan crossover adalah strategi indikator teknis yang paling dasar.
Strategi ini langsung menggunakan fitur feedback yang ada di TradingView, tanpa perlu implementasi tambahan.
Visualisasi yang kuat. Menggunakan TradingView untuk menampilkan titik sinyal perdagangan dan statistik retrospektif langsung pada grafik.
Risiko dapat dikontrol. Strategi ini mengatur kondisi stop dan stop loss yang dapat secara efektif mengontrol kerugian dari satu transaksi.
Fleksibilitas penyesuaian. Pengguna dapat menyesuaikan parameter garis rata-rata dan indikator teknis lainnya sesuai dengan kebutuhan mereka sendiri, sehingga strategi lebih sesuai dengan varietas dan gaya perdagangan yang berbeda.
Strategi ini juga memiliki risiko sebagai berikut:
Terlalu banyak sinyal dapat dihasilkan. Strategi dua garis sejajar mudah menghasilkan beberapa sinyal yang salah saat digabungkan.
Tergantung pada satu indikator. Hanya menggunakan crossover rata-rata untuk membuat keputusan, mengabaikan faktor-faktor lain, kualitas sinyal mungkin lebih buruk.
Optimalisasi parameter sangat sulit. Mengoptimalkan kombinasi parameter siklus rata-rata membutuhkan banyak perhitungan, dan tidak mudah menemukan parameter yang optimal.
Retesting bias. Retesting dari strategi sederhana dua rata-rata cenderung lebih baik daripada yang dilakukan pada hard disk.
Kesulitan Stop Loss: Menetapkan titik stop loss yang tetap sulit untuk beradaptasi dengan perubahan situasi.
Strategi ini dapat dioptimalkan dengan:
Dalam kombinasi dengan indikator lain, sinyal filter seperti volume perdagangan, volatilitas, dan lain-lain, untuk menghindari sinyal yang tidak valid dalam perhitungan.
Menambahkan penilaian berdasarkan tren, menghindari perdagangan berlawanan. Anda dapat menambahkan garis rata-rata periode yang lebih panjang untuk menilai arah tren.
Menggunakan pembelajaran mesin untuk menemukan parameter optimal. Menggunakan optimasi parameter sekuensial atau algoritma genetik untuk secara otomatis menemukan kombinasi parameter yang lebih baik.
Menambahkan strategi stop loss, seperti tracking stop loss, move stop loss, dan lain-lain, membuat stop loss lebih elastis.
Optimalkan waktu masuk. Indikator lain dapat digunakan untuk mengidentifikasi waktu masuk yang lebih efektif.
Pengukuran dan pengoptimalan dari kombinasi parameter yang digabungkan dengan penelitian kuantitatif meningkatkan stabilitas.
Mengembangkan sistem perdagangan otomatis untuk mengoptimalkan kombinasi parameter dan evaluasi strategi menggunakan perdagangan terprogram.
Strategi Lion Crack Equilibrium adalah strategi pemula yang sangat cocok untuk belajar. Ini menggunakan prinsip simplistic double linear crossing, mengatur aturan stop loss, dan dapat menangkap pergerakan harga garis pendek. Strategi ini mudah dipahami dan diterapkan, dengan efek pengukuran yang baik.
/*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"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TraderHalai
// This script was born out of my quest to be able to display strategy back test statistics on charts to allow for easier backtesting on devices that do not natively support backtest engine (such as mobile phones, when I am backtesting from away from my computer). There are already a few good ones on TradingView, but most / many are too complicated for my needs.
//
//Found an excellent display backtest engine by 'The Art of Trading'. This script is a snippet of his hard work, with some very minor tweaks and changes. Much respect to the original author.
//
//Full credit to the original author of this script. It can be found here: https://www.tradingview.com/script/t776tkZv-Hammers-Stars-Strategy/?offer_id=10&aff_id=15271
//
// This script can be copied and airlifted onto existing strategy scripts of your own, and integrates out of the box without implementation of additional functions. I've also added Max Runup, Average Win and Average Loss per trade to the orignal script.
//
//Will look to add in more performance metrics in future, as I further develop this script.
//
//Feel free to use this display panel in your scripts and strategies.
//Thanks and enjoy! :)
//@version=5
// strategy("Strategy BackTest Display Statistics - TraderHalai", overlay=true, default_qty_value= 5, default_qty_type = strategy.percent_of_equity, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)
//DEMO basic strategy - Use your own strategy here - Jaws Mean Reversion from my profile used here
source = input(title = "Source", defval = close)
smallMAPeriod = input(title = "Small Moving Average", defval = 2)
bigMAPeriod = input(title = "Big Moving Average", defval = 8)
percentBelowToBuy = input(title = "Percent below to buy %", defval = 1)
smallMA = ta.sma(source, smallMAPeriod)
bigMA = ta.sma(source, bigMAPeriod)
buyMA = ((100 - percentBelowToBuy) / 100) * ta.sma(source, bigMAPeriod)[0]
buy = ta.crossunder(smallMA, buyMA)
if(buy)
strategy.entry("BUY", strategy.long)
if(strategy.openprofit >= strategy.position_avg_price * 0.01) // 1% profit target
strategy.close("BUY")
if(ta.barssince(buy) >= 7) //Timed Exit, if you fail to make 1 percent in 7 candles.
strategy.close("BUY")
///////////////////////////// --- BEGIN TESTER CODE --- ////////////////////////
// COPY below into your strategy to enable display
////////////////////////////////////////////////////////////////////////////////
// strategy.initial_capital = 50000
// // Declare performance tracking variables
// drawTester = input.bool(true, "Draw Tester")
// var balance = strategy.initial_capital
// var drawdown = 0.0
// var maxDrawdown = 0.0
// var maxBalance = 0.0
// var totalWins = 0
// var totalLoss = 0
// // Prepare stats table
// var table testTable = table.new(position.top_right, 5, 2, border_width=1)
// f_fillCell(_table, _column, _row, _title, _value, _bgcolor, _txtcolor) =>
// _cellText = _title + "\n" + _value
// table.cell(_table, _column, _row, _cellText, bgcolor=_bgcolor, text_color=_txtcolor)
// // Custom function to truncate (cut) excess decimal places
// truncate(_number, _decimalPlaces) =>
// _factor = math.pow(10, _decimalPlaces)
// int(_number * _factor) / _factor
// // Draw stats table
// var bgcolor = color.new(color.black,0)
// if drawTester
// if barstate.islastconfirmedhistory
// // Update table
// dollarReturn = strategy.netprofit
// f_fillCell(testTable, 0, 0, "Total Trades:", str.tostring(strategy.closedtrades), bgcolor, color.white)
// f_fillCell(testTable, 0, 1, "Win Rate:", str.tostring(truncate((strategy.wintrades/strategy.closedtrades)*100,2)) + "%", bgcolor, color.white)
// f_fillCell(testTable, 1, 0, "Starting:", "$" + str.tostring(strategy.initial_capital), bgcolor, color.white)
// f_fillCell(testTable, 1, 1, "Ending:", "$" + str.tostring(truncate(strategy.initial_capital + strategy.netprofit,2)), bgcolor, color.white)
// f_fillCell(testTable, 2, 0, "Avg Win:", "$"+ str.tostring(truncate(strategy.grossprofit / strategy.wintrades, 2)), bgcolor, color.white)
// f_fillCell(testTable, 2, 1, "Avg Loss:", "$"+ str.tostring(truncate(strategy.grossloss / strategy.losstrades, 2)), bgcolor, color.white)
// f_fillCell(testTable, 3, 0, "Profit Factor:", str.tostring(truncate(strategy.grossprofit / strategy.grossloss,2)), strategy.grossprofit > strategy.grossloss ? color.green : color.red, color.white)
// f_fillCell(testTable, 3, 1, "Max Runup:", str.tostring(truncate(strategy.max_runup, 2 )), bgcolor, color.white)
// f_fillCell(testTable, 4, 0, "Return:", (dollarReturn > 0 ? "+" : "") + str.tostring(truncate((dollarReturn / strategy.initial_capital)*100,2)) + "%", dollarReturn > 0 ? color.green : color.red, color.white)
// f_fillCell(testTable, 4, 1, "Max DD:", str.tostring(truncate((strategy.max_drawdown / strategy.equity) * 100 ,2)) + "%", color.red, color.white)
// // --- END TESTER CODE --- ///////////////