Strategi Perdagangan Robot Batch Take Profit BTC Berbilang Tahap

Penulis:ChaoZhang, Tarikh: 2023-10-18 11:12:39
Tag:

img

Ringkasan

Ini adalah strategi perdagangan robot BTC mengambil keuntungan pelbagai peringkat. Ia memasuki kedudukan panjang dengan mencari titik terendah dan menetapkan beberapa titik mengambil keuntungan untuk keluar kumpulan. Ia juga menetapkan titik stop loss untuk kawalan risiko. Strategi ini sesuai apabila bullish pada BTC.

Logika Strategi

  1. Cari isyarat masuk: Menjana isyarat beli apabila penunjuk CC melintasi di bawah 0. Beli kedudukan panjang pada titik ini.

  2. Tetapkan stop loss: Tetapkan peratusan stop loss melalui input, menukar kepada tahap harga untuk stop loss.

  3. Tetapkan beberapa titik keuntungan: 4 titik keluar, set mengambil peratusan keuntungan untuk setiap titik melalui input, menukar kepada tahap harga.

  4. Kawalan risiko: Tetapkan saiz kedudukan maksimum, tetapkan peratusan keluar untuk setiap titik keluar melalui input untuk penyebaran risiko.

Analisis Kelebihan

Kelebihan strategi ini ialah:

  1. Isyarat masuk yang boleh dipercayai dengan membeli pada titik terendah, mengelakkan membeli pada paras tertinggi.

  2. Multi-level mengambil keuntungan kunci dalam keuntungan separa sambil mengekalkan beberapa keuntungan berjalan.

  3. Stop loss mengawal risiko dan mengehadkan kerugian kepada julat tertentu.

  4. Keluar kumpulan menyebarkan risiko, mengelakkan kerugian penuh sekaligus.

  5. Pengurangan boleh dikawal hingga tahap tertentu.

Analisis Risiko

Risiko strategi ini ialah:

  1. Indikator CC tidak dapat memastikan titik terendah sepenuhnya, mungkin terlepas peluang membeli.

  2. Tetapan stop loss yang tidak betul boleh menyebabkan stop loss yang tidak perlu.

  3. Keluar kumpulan yang tidak betul juga boleh menyebabkan kerugian keuntungan.

  4. Mengambil keuntungan lebih sukar di pasaran yang berbeza.

  5. Ia mungkin sukar untuk menghentikan kerugian dalam pembalikan tajam.

Arahan pengoptimuman

Pengoptimuman berpotensi:

  1. Mengoptimumkan isyarat masuk dengan lebih banyak penunjuk atau pembelajaran mesin untuk masa yang lebih baik.

  2. Mengoptimumkan strategi stop loss untuk menjadikannya lebih elastik terhadap pergerakan pasaran.

  3. Mengoptimumkan keluar untuk penyesuaian yang lebih baik dalam pasaran yang berbeza dan trend.

  4. Tambah penangguhan untuk mengambil keuntungan yang lebih fleksibel.

  5. Uji aset yang berbeza untuk set parameter terbaik.

Kesimpulan

Ringkasnya, ini adalah strategi perdagangan BTC berdasarkan pembelian pada titik terendah dengan keuntungan mengambil pelbagai peringkat dan berhenti kerugian. Ia mempunyai kelebihan tertentu dan juga bidang yang boleh diperbaiki. Pengoptimuman lanjut mengenai kawalan penarikan dan mengambil keuntungan dapat membuat strategi ini berfungsi dengan lebih baik. Secara keseluruhan ia menyediakan pendekatan yang berdaya maju untuk perdagangan algoritma BTC.


/*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)


Lebih lanjut