
Strategi ini adalah strategi perdagangan robot BTC dengan beberapa peringkat berhenti. Ia membuat pembelian dengan mencari titik terendah, kemudian menetapkan titik berhenti pelbagai untuk membuat keluar dari titik berhenti. Ia juga menetapkan titik berhenti untuk mengawal risiko.
Mencari masa untuk masuk: apabila CC di bawah penunjuk melintasi paksi 0 menghasilkan sinyal beli, pada titik itu membeli lebih banyak pesanan.
Tetapkan titik hentian: Hentikan dengan menukarkan peratusan hentian input ke harga.
Tetapkan titik henti pelbagai peringkat: terbahagi kepada 4 titik keluar, dengan input menetapkan peratusan henti setiap titik keluar, dan mengubahnya menjadi harga untuk menghentikan henti.
Kawalan risiko: Tetapkan jumlah pegangan maksimum, dengan peratusan jumlah keluar setiap titik keluar yang ditetapkan oleh input, untuk menyebarkan risiko.
Strategi ini mempunyai kelebihan berikut:
Sinyal masuk lebih dipercayai, cari pembelian pada titik terendah dan elakkan pembelian pada titik tinggi.
Multilevel Stop Stop boleh mengunci sebahagian daripada keuntungan, sambil mengekalkan sebahagian daripada keuntungan untuk terus beroperasi.
Tetapkan titik berhenti untuk mengawal risiko, boleh mengawal kerugian dalam beberapa tahap.
Perlumbaan dalam kumpulan boleh membahagikan risiko, mengelakkan kerugian secara keseluruhan.
Penarikan diri boleh dikawal.
Strategi ini juga mempunyai risiko:
CC tidak dapat menentukan titik terendah dengan tepat, dan ia mungkin akan kehilangan peluang untuk membeli.
Tetapan titik henti yang tidak betul boleh menyebabkan hentian yang tidak perlu.
Pengaturcaraan yang tidak betul juga boleh menyebabkan kerugian keuntungan.
Ia adalah lebih sukar untuk menghentikan gempa.
Mungkin sukar untuk dihalang apabila keadaan berubah secara drastik.
Ia boleh dioptimumkan dalam beberapa aspek:
Optimumkan isyarat masuk, tambah lebih banyak petunjuk atau penilaian pembelajaran mesin untuk menentukan masa pembelian.
Mengoptimumkan strategi menghentikan kerugian, menjadikannya lebih fleksibel dan lebih baik dalam menangani situasi.
Mengoptimumkan strategi untuk beraksi supaya lebih mudah beradaptasi dengan kejatuhan dan trend.
Menambah strategi seperti trailing stop untuk menjadikan penangguhan lebih fleksibel.
Uji seting parameter yang berbeza untuk mencari kombinasi parameter terbaik.
Strategi ini secara keseluruhannya adalah strategi perdagangan BTC yang berdasarkan mencari isyarat pembelian titik terendah dan menetapkan beberapa tahap berhenti dan berhenti. Ia mempunyai kelebihan tertentu, tetapi juga terdapat arah yang dapat dioptimumkan. Dengan pengoptimuman lanjut, strategi ini dapat dilakukan dengan lebih baik dalam hal kawalan penarikan balik dan berhenti.
/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",2]]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni
// © theCrypster 2020
//@version=4
// strategy(title = "BTC bot", overlay = true, pyramiding=1,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//INPUTS
higherTF = input("W", type=input.resolution)
pc = security(syminfo.tickerid, higherTF, close[1], lookahead=true)
ph = security(syminfo.tickerid, higherTF, high[1], lookahead=true)
pl = security(syminfo.tickerid, higherTF, low[1], lookahead=true)
PP = 0.0,R1 = 0.0, R2 = 0.0, R3 = 0.0,S1 = 0.0, S2 = 0.0, S3 = 0.0
PP := (ph + pl + pc) / 3
R1 := PP + (PP - pl)
S1 := PP - (ph - PP)
R2 := PP + (ph - pl)
S2 := PP - (ph - pl)
factor=input(2)
R3 := ph + factor * (PP - pl)
S3 := pl - 2 * (ph - PP)
//
length=input(21)
//
p = close
vrsi = rsi(p, length)
pp=ema(vrsi,length)
d=(vrsi-pp)*5
cc=(vrsi+d+pp)/2
//
low1=crossover(cc,0)
sell=crossover(close[1],R3)
//
l = low1
s=sell
if l
strategy.entry("buy", strategy.long)
if s
strategy.entry("sell", strategy.short)
per(pcnt) =>
strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=15, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=3, minval=0.01)
tp2=input(title=" Take profit2", defval=5, minval=0.01)
tp3=input(title=" Take profit3", defval=7, minval=0.01)
tp4=input(title=" Take profit4", defval=10, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)