新增实盘策略:FisherTrendStrategy(FG)

This commit is contained in:
2026-02-27 21:32:28 +08:00
parent ae45cc8231
commit 94695c29ae
2 changed files with 8 additions and 8 deletions

View File

@@ -118,7 +118,7 @@ class PragmaticCyberneticStrategy(Strategy):
self._closes.append(prev_bar.close)
T, FV, FB, ATR = self._calculate_indicators()
self.log(f'T: {T:.2f} FV: {FV:.2f} FB: {FB:.2f} ATR: {ATR:.2f}')
self.log(f'T: {Tf} FV: {FVf} FB: {FBf} ATR: {ATRf}')
if T is None or math.isnan(ATR): return
self._fbs.append(FB)
@@ -134,7 +134,7 @@ class PragmaticCyberneticStrategy(Strategy):
is_met = self.indicator is None or self.indicator.is_condition_met(*self.get_indicator_tuple())
self.log(f'is_met: {is_met}, pos: {pos:.2f}, current_fb: {current_fb:.2f}, prev_fb: {prev_fb:.2f}')
self.log(f'is_met: {is_met}, pos: {pos}, current_fb: {current_fbf}, prev_fb: {prev_fbf}')
# ==========================================
# 核心一:经典出场逻辑 (你的原版设计)
@@ -151,7 +151,7 @@ class PragmaticCyberneticStrategy(Strategy):
if pos > 0:
# A. 动能极值止盈
if current_fb > self.fisher_exit_level and current_fb < prev_fb:
self.log(f"TAKE PROFIT (Long): FB {current_fb:.2f} Peak Reached")
self.log(f"TAKE PROFIT (Long): FB {current_fbf} Peak Reached")
self.send_market_order("CLOSE_LONG", abs(pos), "CLOSE")
return
@@ -171,7 +171,7 @@ class PragmaticCyberneticStrategy(Strategy):
elif pos < 0:
# A. 动能极值止盈
if current_fb < -self.fisher_exit_level and current_fb > prev_fb:
self.log(f"TAKE PROFIT (Short): FB {current_fb:.2f} Bottom Reached")
self.log(f"TAKE PROFIT (Short): FB {current_fbf} Bottom Reached")
self.send_market_order("CLOSE_SHORT", abs(pos), "CLOSE")
return

View File

@@ -118,7 +118,7 @@ class PragmaticCyberneticStrategy(Strategy):
self._closes.append(prev_bar.close)
T, FV, FB, ATR = self._calculate_indicators()
self.log(f'T: {T:.2f} FV: {FV:.2f} FB: {FB:.2f} ATR: {ATR:.2f}')
self.log(f'T: {Tf} FV: {FVf} FB: {FBf} ATR: {ATRf}')
if T is None or math.isnan(ATR): return
self._fbs.append(FB)
@@ -134,7 +134,7 @@ class PragmaticCyberneticStrategy(Strategy):
is_met = self.indicator is None or self.indicator.is_condition_met(*self.get_indicator_tuple())
self.log(f'is_met: {is_met}, pos: {pos:.2f}, current_fb: {current_fb:.2f}, prev_fb: {prev_fb:.2f}')
self.log(f'is_met: {is_met}, pos: {pos}, current_fb: {current_fbf}, prev_fb: {prev_fbf}')
# ==========================================
# 核心一:经典出场逻辑 (你的原版设计)
@@ -151,7 +151,7 @@ class PragmaticCyberneticStrategy(Strategy):
if pos > 0:
# A. 动能极值止盈
if current_fb > self.fisher_exit_level and current_fb < prev_fb:
self.log(f"TAKE PROFIT (Long): FB {current_fb:.2f} Peak Reached")
self.log(f"TAKE PROFIT (Long): FB {current_fbf} Peak Reached")
self.send_market_order("CLOSE_LONG", abs(pos), "CLOSE")
return
@@ -171,7 +171,7 @@ class PragmaticCyberneticStrategy(Strategy):
elif pos < 0:
# A. 动能极值止盈
if current_fb < -self.fisher_exit_level and current_fb > prev_fb:
self.log(f"TAKE PROFIT (Short): FB {current_fb:.2f} Bottom Reached")
self.log(f"TAKE PROFIT (Short): FB {current_fbf} Bottom Reached")
self.send_market_order("CLOSE_SHORT", abs(pos), "CLOSE")
return