Strategi perdagangan robot BTC dengan pengambilan untung batch bertingkat


Tanggal Pembuatan: 2023-10-18 11:12:39 Akhirnya memodifikasi: 2023-10-18 11:12:39
menyalin: 0 Jumlah klik: 707
1
fokus pada
1617
Pengikut

Strategi perdagangan robot BTC dengan pengambilan untung batch bertingkat

Ringkasan

Strategi ini adalah strategi perdagangan robot BTC dengan stop loss bertingkat. Strategi ini melakukan buy entry dengan mencari titik terendah, kemudian mengatur stop loss bertingkat untuk melakukan stop loss bertingkat dan exit. Strategi ini cocok untuk melihat BTC.

Prinsip Strategi

  1. Mencari waktu masuk: Sebuah sinyal beli dihasilkan ketika CC melewati sumbu 0 di bawah indikator, dan pada titik itu membeli lebih banyak order.

  2. Set Stop Loss Point: Stop loss yang dikonversi menjadi harga dengan setting persentase stop loss input.

  3. Setting multi-level stop: terbagi menjadi 4 titik keluar, dengan input set stop persentase dari masing-masing titik keluar, dikonversi menjadi harga untuk batch stop.

  4. Pengendalian risiko: mengatur jumlah maksimum yang dapat dipegang, dengan persentase jumlah keluar dari setiap titik keluar yang ditetapkan oleh input, untuk penyebaran risiko.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Sinyal masuk lebih dapat diandalkan, carilah titik terendah untuk membeli, dan hindari membeli pada titik tertinggi.

  2. Multi-level stop-loss dapat mengunci sebagian dari keuntungan, sementara mempertahankan sebagian dari keuntungan untuk terus beroperasi.

  3. Pengaturan titik berhenti untuk pengendalian risiko, dapat mengendalikan kerugian dalam batas tertentu.

  4. Dengan berlomba-lomba, risiko dapat terbagi untuk menghindari kerugian sekaligus.

  5. Pengunduran diri dapat dikontrol.

Analisis risiko

Strategi ini juga memiliki risiko sebagai berikut:

  1. Indikator CC tidak dapat menentukan titik terendah dengan pasti, sehingga kemungkinan kehilangan peluang untuk membeli.

  2. Stop loss yang tidak tepat dapat menyebabkan stop loss yang tidak perlu.

  3. Pengaturan pertandingan yang tidak tepat juga dapat menyebabkan kerugian keuntungan.

  4. “Kalau ada gempa, lebih sulit untuk menghentikan gempa.

  5. “Saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa”.

Arah optimasi

Ada beberapa hal yang dapat dioptimalkan:

  1. Optimalkan sinyal masuk, tambahkan lebih banyak indikator atau penilaian pembelajaran mesin untuk menentukan kapan tepat untuk membeli.

  2. Optimalkan strategi stop loss agar lebih elastis dan mampu menanggapi situasi dengan lebih baik.

  3. Optimalkan strategi untuk beradaptasi lebih baik terhadap perubahan dan tren.

  4. Strategi seperti trailing stop dapat membuat stop-loss lebih elastis.

  5. Uji pengaturan parameter varietas yang berbeda untuk menemukan kombinasi parameter yang optimal.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi perdagangan BTC yang didasarkan pada mencari sinyal beli titik terendah dan mengatur stop loss dan stop loss multi-level. Ini memiliki beberapa keuntungan, tetapi ada juga arah yang dapat dioptimalkan. Dengan pengoptimalan lebih lanjut, strategi dapat dibuat lebih baik dalam hal kontrol penarikan dan stop loss.

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