Strategi perdagangan bayangan mengenal pasti K-line dengan bayangan bawah atau atas yang panjang untuk menentukan peluang pembalikan pasaran yang berpotensi. Ia menjadi panjang apabila bayangan bawah yang panjang dikenal pasti dan menjadi pendek apabila bayangan atas yang panjang dikenal pasti. Strategi ini terutamanya menggunakan prinsip umum pembalikan bayangan untuk perdagangan.
Logik teras strategi perdagangan bayangan adalah untuk mengenal pasti bayangan atas dan bawah panjang dalam K-garis.corpo
Dan (apabila) bayangan-bayangan (yang lain)pinnaL
danpinnaS
. Apabila saiz bayang-bayang lebih besar daripada saiz badan dengan pengganda tertentu, ia menganggap mungkin ada peluang pembalikan. Khususnya, strategi ini merangkumi langkah-langkah berikut:
corpo
, yang merupakan nilai mutlak perbezaan antara harga buka dan tutup.pinnaL
, yang merupakan nilai mutlak perbezaan antara harga tertinggi dan harga dekat.pinnaS
, yang merupakan nilai mutlak perbezaan antara harga terendah dan harga dekat.pinnaL > (corpo*size)
, di manasize
adalah parameter yang boleh diselaraskan.pinnaS > (corpo*size)
.Di samping itu, strategi ini juga memeriksa sama ada julat K-linedim
melebihi nilai minimummin
untuk menapis K-garis remeh dengan julat yang tidak ketara.
Strategi perdagangan bayangan adalah strategi perdagangan jangka pendek yang mudah dan praktikal. Ia menghasilkan isyarat perdagangan menggunakan prinsip umum pembalikan bayangan. Logik strategi adalah mudah dan mudah dilaksanakan, dan boleh diselaraskan dan dioptimumkan mengikut perbezaan produk. Pada masa yang sama, perdagangan bayangan juga membawa risiko tertentu. Ia perlu digabungkan dengan trend dan faktor lain untuk penapisan untuk mengurangkan perdagangan palsu. Apabila digunakan dengan betul, perdagangan bayangan boleh menjadi komponen yang berkesan dalam sistem perdagangan kuantitatif.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-11 23:59:59 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Shadow Trading", overlay=true) size = input(1,type=float) pinnaL = abs(high - close) pinnaS = abs(low-close) scarto = input(title="Tail Tollerance", type=float, defval=0.0018) corpo = abs(close - open) dim = abs(high-low) min = input(0.001) shortE = (open + dim) longE = (open - dim) barcolor(dim > min and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) ? navy : na) longcond = (dim > min) and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) minimo=low+scarto massimo=high+scarto barcolor( dim > min and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) ? orange: na) shortcond = (dim > min) and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) //plot(shortE) //plot(longE) //plot(open) ss= shortcond ? close : na ll=longcond ? close : na offset= input(0.00000) DayClose = 2 closup = barssince(change(strategy.opentrades)>0) >= DayClose longCondition = (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) crossFlag = longcond ? 1 : 0 monthBegin = input(1,maxval = 12) yearBegin = input(2013, maxval= 2015, minval=2000) if(month(time)>monthBegin and year(time) >yearBegin) if (longcond) strategy.entry("short", strategy.short, stop = low - offset) //strategy.close("short", when = closup) shortCondition = (close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) if(month(time)>monthBegin and year(time) >yearBegin) if (shortcond) strategy.entry("long", strategy.long, stop = high + offset) //strategy.close("long", when = closup) Target = input(20) Stop = input(70) //- 2 Trailing = input(0) CQ = 100 TPP = (Target > 0) ? Target*10: na SLP = (Stop > 0) ? Stop*10 : na TSP = (Trailing > 0) ? Trailing : na strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP) strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)