
Strategi ini bertujuan untuk menggunakan persimpangan garis rata untuk menentukan arah trend, dan menggunakan RSI untuk mengelakkan overdoing di bahagian atas pasaran dan shorting di bahagian bawah pasaran, untuk mendapatkan keuntungan yang lebih baik.
Apabila garis purata 9 kitaran cepat melintasi garis purata 50 kitaran perlahan, menunjukkan peningkatan trend jangka pendek yang diletakkan di atas peningkatan trend jangka panjang, termasuk dalam isyarat pelbagai tipikal. Pada masa yang sama, jika RSI lebih besar daripada 5 mata pada kitaran sebelumnya dan kurang dari 70, ini menunjukkan berada di kawasan sebelum membeli lebih banyak, ini adalah masa yang lebih baik untuk melakukan lebih banyak.
Apabila laju 9 pusingan purata di bawah garis laju 50 pusingan purata, menunjukkan berada di pasaran kosong, memerlukan kedudukan kosong.
Strategi ini dapat memperoleh keuntungan yang stabil dengan menggunakan trend garis tengah dan panjang dengan cara menentukan arah dua persilangan garis rata dan mengelakkan mengejar tinggi dan rendah. Tetapi juga perlu berhati-hati terhadap keterlambatan isyarat persilangan garis rata dan penyesuaian parameter RSI, sambil memperhatikan hubungan harga dan jumlah transaksi. Dengan ujian dan pengoptimuman yang berterusan, strategi ini dijangka dapat mencapai hasil yang lebih baik.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © joshuajcoop01
//@version=5
strategy("Bitpanda Coinrule Template",
overlay=true,
initial_capital=1000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0
// RSI
length = input(14)
vrsi = ta.rsi(close, length)
// Moving Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)
increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
strategy.entry("Long", strategy.long)
// Moving Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)
condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)
strategy.close('Long', when = condition and timePeriod)