
Strategi ini dinamakan strategi perdagangan kuantitatif yang berdasarkan pada perbandingan harga penutupan K-line yang kosong dengan penapis EMA. Strategi ini dibuat dengan mengutip jumlah K-line berbilang dan K-line kosong yang membentuk harga penutupan K-line dalam tempoh tertentu, digabungkan dengan penapis EMA, untuk menilai isyarat penutupan lebih banyak jika sesuai dengan tempoh masa perdagangan.
Logik utama strategi ini adalah untuk mengkaji jumlah garis K yang muncul dalam penutupan upCloseCount dan jumlah garis K yang ditutup pada penutupan downCloseCount dalam tempoh jangka pendek terakhir, jika jumlah penutupan upCloseCount lebih banyak, maka ia akan dianggap sebagai pasaran bertopeng, dan jika jumlah penutupan downCloseCount lebih banyak, maka ia akan dianggap sebagai pasaran kosong.
Logik penghakiman adalah:
Syarat pemicu isyarat berbilang kepala: inSession adalah true ((dalam tempoh masa perdagangan) dan upCloseCount > downCloseCount ((terdapat lebih banyak baris K penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penut
Syarat pemicu isyarat kosong: inSession adalah true dan downCloseCount > upCloseCount ((terhad jumlah baris K penutupan penurunan) dan close < ema ((harga penutupan lebih rendah daripada EMA) dan currentSignal tidak “short” ((tidak ada kedudukan semasa)
Kaedah pencegahan:
Strategi ini mengiktiraf isyarat trend pada masa perdagangan tertentu dengan mengkaji statistik harga penutupan K dalam tempoh sejarah tertentu, digabungkan dengan kesan penapisan indikator EMA. Ia mempunyai kesan trend pengesanan tertentu. Tetapi terdapat risiko perdagangan yang salah, yang perlu diperbaiki dengan pengoptimuman parameter, strategi hentikan kerugian, dan penapisan isyarat.
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Up vs Down Close Candles Strategy with EMA and Session Time Frames", shorttitle="UvD Strat EMA Session", overlay=true)
// User input to define the lookback period, EMA period, and session strings for time frames
int lookback = input(20, title="Lookback Period")
int emaPeriod = input(50, title="EMA Period")
string session1 = input("0900-1200", title="Time Frame 1 Session")
string session2 = input("1300-1600", title="Time Frame 2 Session")
// Calculate the EMA
float ema = ta.ema(close, emaPeriod)
// State variable to track the current signal
var string currentSignal = na
// Counting up-close and down-close candles within the lookback period
int upCloseCount = 0
int downCloseCount = 0
if barstate.isnew
upCloseCount := 0
downCloseCount := 0
for i = 0 to lookback - 1
if close[i] > close[i + 1]
upCloseCount += 1
else if close[i] < close[i + 1]
downCloseCount += 1
// Define the long (buy) and short (sell) conditions with EMA filter and session time frame
bool inSession = time(timeframe.period, session1) or time(timeframe.period, session2)
bool longCondition = inSession and upCloseCount > downCloseCount and close > ema and currentSignal != "long"
bool shortCondition = inSession and downCloseCount > upCloseCount and close < ema and currentSignal != "short"
// Enter or exit the market based on conditions
if longCondition
currentSignal := "long"
strategy.entry("Buy", strategy.long)
if shortCondition
currentSignal := "short"
strategy.entry("Sell", strategy.short)
// Exit logic for long and short positions
if currentSignal == "long" and strategy.position_size <= 0
strategy.close("Sell")
if currentSignal == "short" and strategy.position_size >= 0
strategy.close("Buy")
plot(ema, color=color.blue, title="EMA")