Terobosan strategi harga tertinggi semalam


Tarikh penciptaan: 2023-11-06 10:49:57 Akhirnya diubah suai: 2023-11-06 10:49:57
Salin: 0 Bilangan klik: 709
1
fokus pada
1617
Pengikut

Terobosan strategi harga tertinggi semalam

Gambaran keseluruhan

Strategi memecahkan harga tertinggi semalam adalah strategi pengesanan trend yang membuka kedudukan berganda apabila harga tertinggi semalam dilanggar, walaupun ia boleh dibuka beberapa kali pada hari itu. Ia menggunakan trend pengesanan sebagai ciri utama, digunakan untuk keadaan di mana pasaran menunjukkan trend yang jelas dan kadar turun naik yang tinggi.

Prinsip

Strategi ini memperkenalkan satu siri penunjuk untuk mengenal pasti masa masuk dan keluar.

  • Penapis kurva ROC - memulakan strategi apabila kenaikan dan penurunan harga penutupan pada hari itu berbanding harga penutupan pada hari perdagangan sebelumnya melebihi ambang yang ditetapkan. Penunjuk ini digunakan untuk menapis pasaran yang bergelombang yang tidak sesuai dengan strategi.

  • Titik penembusan - mencatat harga tertinggi, harga rendah, harga pembukaan pada hari tersebut. Apabila harga menembusi harga tertinggi pada hari itu, ia adalah isyarat masuk.

  • Syarat masuk dan keluar - menetapkan stop loss dan stop loss selepas masuk, dan boleh mengaktifkan tracking stop loss untuk mengunci keuntungan. Anda juga boleh menetapkan syarat untuk EMA tertentu.

  • Pengaturcaraan yang dioptimumkan - boleh menetapkan nisbah jarak sebelum masuk untuk menyesuaikan masa masuk, mengelakkan penembusan palsu. Boleh menetapkan parameter dinamik untuk menghentikan kerugian, berhenti, dan mengesan kerugian.

Khususnya, strategi ini menilai masa masuk dengan merekodkan harga tertinggi pada hari itu. Apabila harga melebihi harga tertinggi pada hari itu, masuklah ke dalam banyak pintu. Selepas itu, atur hentikan dan hentikan hentikan, sambil mengaktifkan hentikan pengesanan.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  • Ia juga boleh digunakan untuk menjejaki trend dan mengambil keuntungan daripada trend.

  • Strategi penembusan, isyarat masuk jelas.

  • Untuk mengelakkan kemasukan berturut-turut, pertimbangkan harga tertinggi pada hari tersebut.

  • Tetapan penghalang kerosakan untuk mengawal risiko.

  • Mengesan tetapan stop loss dan mengunci keuntungan.

  • Anda boleh menyesuaikan masa kemasukan dan mengawal risiko dengan mengoptimumkan parameter.

  • Ia mudah difahami dan mudah difahami.

  • Ia boleh digunakan dalam dua arah.

Analisis risiko

Strategi ini juga mempunyai risiko:

  • Strategi penembusan mudah dikurung. Harga boleh turun dengan cepat selepas masuk.

  • Ia hanya berkesan dalam keadaan trend, dan kurang berkesan dalam keadaan gegaran.

  • Ia perlu menetapkan kadar stop loss yang munasabah, kerana terlalu melonggarkan boleh meningkatkan kerugian.

  • Perbezaan jarak masuk perlu disesuaikan dengan baik, kerana terlalu radikal boleh meningkatkan kerugian.

  • Penembusan palsu boleh menyebabkan kerugian yang tidak perlu dan memerlukan penyesuaian dan pengoptimuman.

  • Ia perlu diperhatikan sama ada jumlah transaksi yang berjaya dapat menyokong perkembangan seterusnya.

  • Perhatian perlu diberikan kepada kecocokan antara seting parameter tempoh masa yang berbeza.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  • Menambah penilaian indikator teknikal lain, seperti jumlah dagangan, indikator gegaran, dan lain-lain, untuk mengelakkan terikat dalam keadaan gegaran.

  • Menambah indikator penyesuaian kurva untuk menilai kualiti trend dan mengelakkan trend palsu.

  • Pengoptimuman dinamik untuk penetapan selang kemasukan, menyesuaikan selang mengikut keperluan turun naik pasaran.

  • Pengoptimuman dinamik untuk tetapan stop loss, mengikut parameter penyesuaian pasaran.

  • Setkan parameter yang berbeza untuk kitaran yang berbeza untuk varieti yang berbeza.

  • Menggunakan kaedah pembelajaran mesin TRAINING untuk menguji kesan pelbagai parameter terhadap strategi.

  • Tambah Options Optimisasi konfigurasi.

  • Kajian mengenai bagaimana strategi ini boleh digunakan dalam situasi gegaran.

  • Strategi gabungan yang diperluaskan untuk tempoh masa dan varieti.

ringkaskan

Strategi ini adalah berdasarkan kepada idea untuk mengesan trend yang melampaui harga tertinggi semalam, dan ia berfungsi dengan baik dalam keadaan trend. Tetapi terdapat juga risiko terhad dan masalah pengoptimuman parameter. Ia boleh dioptimumkan dengan cara memperkenalkan lebih banyak indikator penghakiman, pengaturan parameter pengoptimuman dinamik, dan strategi gabungan. Secara keseluruhan, strategi ini sesuai untuk mengikuti trend garis pendek, tetapi perlu memberi perhatian kepada kawalan risiko dan pengoptimuman parameter.

Kod sumber strategi
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 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/
// Author: © tumiza 999 
// © TheSocialCryptoClub

//@version=5

strategy("Yesterday's High v.17.07", overlay=true, pyramiding = 1,
         initial_capital=10000, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=10,
         slippage=1, backtest_fill_limits_assumption=1, use_bar_magnifier=true,
         commission_type=strategy.commission.percent, commission_value=0.075
         )

// -----------------------------------------------------------------------------
// ROC Filter
// -----------------------------------------------------------------------------

// f_security function by LucF for PineCoders available here: https://www.tradingview.com/script/cyPWY96u-How-to-avoid-repainting-when-using-security-PineCoders-FAQ/
f_security(_sym, _res, _src, _rep) => request.security(_sym, _res, _src[not _rep and barstate.isrealtime ? 1 : 0])[_rep or barstate.isrealtime ? 0 : 1]
high_daily = f_security(syminfo.tickerid, "D", high, false)

roc_enable = input.bool(false, "", group="ROC Filter from CloseD", inline="roc")
roc_threshold = input.float(1, "Treshold", step=0.5, group="ROC Filter from CloseD", inline="roc")

closed = f_security(syminfo.tickerid,"1D",close, false)
roc_filter= roc_enable ? (close-closed)/closed*100  > roc_threshold  : true


// -----------------------------------------------------------------------------
// Trigger Point 
// -----------------------------------------------------------------------------

open_session = ta.change(time('D'))
price_session = ta.valuewhen(open_session, open, 0)
tf_session = timeframe.multiplier <= 60

bgcolor(open_session and tf_session ?color.new(color.blue,80):na, title = "Session")

first_bar = 0
if open_session
    first_bar := bar_index

var max_today = 0.0
var min_today = 0.0
var high_daily1 = 0.0
var low_daily1 = 0.0
var today_open = 0.0

if first_bar
    high_daily1 := max_today
    low_daily1 := min_today
    today_open := open
    max_today := high
    min_today := low


if high >= max_today
    max_today := high

if low < min_today
    min_today := low


same_day  = today_open == today_open[1]

plot( timeframe.multiplier <= 240 and same_day ? high_daily1 : na, color= color.yellow , style=plot.style_linebr, linewidth=1, title='High line')
plot( timeframe.multiplier <= 240 and same_day ? low_daily1 : na, color= #E8000D , style=plot.style_linebr, linewidth=1, title='Low line')

// -----------------------------------------------------------------------------
// Strategy settings 
// -----------------------------------------------------------------------------

Gap = input.float(1,"Gap%", step=0.5, tooltip="Gap di entrata su entry_price -n anticipa entrata, con +n posticipa entrata", group = "Entry")
Gap2 = (high_daily1 * Gap)/100

sl  = input.float(3, "Stop-loss", step= 0.5,  group = "Entry")
tp  = input.float(9, "Take-profit", step= 0.5, group = "Entry")
stop_loss_price = strategy.position_avg_price * (1-sl/100)
take_price = strategy.position_avg_price * (1+tp/100)

sl_trl = input.float(2, "Trailing-stop", step = 0.5, tooltip = "Attiva trailing stop dopo che ha raggiunto...",group = "Trailing Stop Settings")//group = "Trailing Stop Settings")
Atrl= input.float(1, "Offset Trailing", step=0.5,tooltip = "Distanza dal prezzo", group = "Trailing Stop Settings")
stop_trl_price_cond = sl_trl * high/syminfo.mintick/100
stop_trl_price_offset_cond = Atrl * high/syminfo.mintick/100

stop_tick = sl * high/syminfo.mintick/100
profit_tick = tp * high/syminfo.mintick/100

mess_buy = "buy"
mess_sell = "sell"

// -----------------------------------------------------------------------------
// Entry - Exit - Close
// -----------------------------------------------------------------------------

if close < high_daily1 and roc_filter
    strategy.entry("Entry", strategy.long, stop = high_daily1 + (Gap2), alert_message = mess_buy)

ts_n  = input.bool(true, "Trailing-stop", tooltip = "Attiva o disattiva trailing-stop", group = "Trailing Stop Settings")
close_ema = input.bool(false, "Close EMA", tooltip = "Attiva o disattiva chiusura su EMA", group = "Trailing Stop Settings")
len1 = input.int(10, "EMA length", step=1, group = "Trailing Stop Settings")
ma1 = ta.ema(close, len1)

plot(ma1, title='EMA', color=color.new(color.yellow, 0))

if ts_n == true
    strategy.exit("Trailing-Stop","Entry",loss= stop_tick, stop= stop_loss_price, limit= take_price, trail_points = stop_trl_price_cond, trail_offset = stop_trl_price_offset_cond, comment_loss="Stop-Loss!!",comment_profit ="CASH!!", comment_trailing = "TRL-Stop!!", alert_message = mess_sell)
else
    strategy.exit("TP-SL", "Entry",loss= stop_tick, stop=stop_loss_price, limit= take_price, comment_loss= "Stop-loss!!!", comment_profit = "CASH!!", alert_message = mess_sell)

if close_ema == true and ta.crossunder(close,ma1)
    strategy.close("Entry",comment = "Close" , alert_message = mess_sell)