Adjust 000852 market-cap band and volume filter
This commit is contained in:
@@ -6,21 +6,27 @@ let rsi_rate = 1.0001;
|
||||
let trade_rate = 0.5;
|
||||
let xs = 4 / 500;
|
||||
let base_index_level = 2000;
|
||||
let base_cap_floor = 7;
|
||||
let cap_span = 10;
|
||||
let base_cap_floor = 3;
|
||||
let base_cap_ceiling = 28;
|
||||
|
||||
fn band_start(current_price, base_index_level, xs, base_cap_floor) {
|
||||
if current_price == base_index_level {
|
||||
base_cap_floor
|
||||
} else if current_price > 0 {
|
||||
(current_price - base_index_level) * xs + base_cap_floor
|
||||
round((current_price - base_index_level) * xs + base_cap_floor)
|
||||
} else {
|
||||
base_cap_floor
|
||||
}
|
||||
}
|
||||
|
||||
fn band_end(current_price, base_index_level, xs, base_cap_floor, cap_span) {
|
||||
band_start(current_price, base_index_level, xs, base_cap_floor) + cap_span
|
||||
fn band_end(current_price, base_index_level, xs, base_cap_ceiling) {
|
||||
if current_price == base_index_level {
|
||||
base_cap_ceiling
|
||||
} else if current_price > 0 {
|
||||
round((current_price - base_index_level) * xs + base_cap_ceiling)
|
||||
} else {
|
||||
base_cap_ceiling
|
||||
}
|
||||
}
|
||||
|
||||
strategy("microcap_volume_trend_000852") {
|
||||
@@ -36,7 +42,7 @@ strategy("microcap_volume_trend_000852") {
|
||||
selection.market_cap_band(
|
||||
field="market_cap",
|
||||
lower=band_start(signal_close, base_index_level, xs, base_cap_floor),
|
||||
upper=band_end(signal_close, base_index_level, xs, base_cap_floor, cap_span)
|
||||
upper=band_end(signal_close, base_index_level, xs, base_cap_ceiling)
|
||||
)
|
||||
|
||||
risk.index_exposure(
|
||||
@@ -46,7 +52,6 @@ strategy("microcap_volume_trend_000852") {
|
||||
filter.stock_expr(
|
||||
stock_ma5 > stock_ma10 * rsi_rate &&
|
||||
stock_ma10 > stock_ma30 * rsi_rate &&
|
||||
rolling_mean("volume", 5) < rolling_mean("volume", 20) &&
|
||||
rolling_mean("volume", 5) < rolling_mean("volume", 60)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user