AI 电动穿线机智能功率 MOSFET 核心选型方案
2026/8/3 14:41:38
在量化策略中,生成买入或卖出信号只是交易的第一步,真正执行交易还需要再经过多重检验。
Freqtrade 框架中提供了两个关键函数:
confirm_trade_entryconfirm_trade_exit它们负责在策略判定买卖信号后,做“最终确认”,决定是否真的执行这笔交易。相当于“交易的安全阀”,防止因为信号误判、行情异常或仓位风险带来损失。
👉点击访问:https://itrade.icu
这里有Freqtrade 基础教程、策略源码、指标解析等丰富内容,助你轻松掌握量化交易技巧!
confirm_trade_entry是在策略产生买入信号后,实际执行买单前调用的函数。
它接收当前交易环境信息,返回是否确认下单。
这个函数主要用途:
defconfirm_trade_entry(self,pair:str,trade:Trade,order_type:str,amount:float,price:float,current_time:datetime,**kwargs)->bool:""" pair: 交易对名称,如 BTC/USDT trade: 当前交易对象,包含开仓价格、状态等 order_type: 订单类型,limit 或 market amount: 拟买入数量 price: 拟买入价格 current_time: 当前时间 kwargs: 其他参数 返回:True 允许买入,False 拒绝买入 """confirm_trade_exit是策略生成卖出信号后,实际执行卖单前的二次确认。
主要用于:
defconfirm_trade_exit(self,pair:str,trade:Trade,order_type:str,amount:float,price:float,current_time:datetime,**kwargs)->bool:""" 参数同 confirm_trade_entry 返回:True 允许卖出,False 拒绝卖出 """defconfirm_trade_entry(self,pair,trade,order_type,amount,price,current_time,**kwargs)->bool:# ma20 = self.dp.get_indicator(pair, 'sma', timeframe='1h', length=20).iloc[-1]ifprice>ma20*1.5:self.log(f"拒绝买入{pair},买价{price}高于均线1.5倍{ma20*1.5}")returnFalsereturnTrue解析:此策略限制买入价格不得超过20小时均线的1.5倍,避免追高。
defconfirm_trade_exit(self,pair,trade,order_type,amount,price,current_time,**kwargs)->bool:ifprice<=trade.open_rate:self.log(f"拒绝卖出{pair},卖价{price}不高于开仓价{trade.open_rate}")returnFalsereturnTrue解析:只有当当前价格高于开仓价时,才允许卖出,避免亏损卖出。
defconfirm_trade_entry(self,pair,trade,order_type,amount,price,current_time,**kwargs)->bool:open_trades=len(self.wallets.get_trades_open())max_positions=3ifopen_trades>=max_positions:self.log(f"拒绝买入{pair},已持仓{open_trades}超过最大允许{max_positions}")returnFalsereturnTrue解析:限制同时持仓最多3个币种,防止过度分散或爆仓风险。
confirm_trade_entry和confirm_trade_exit是 Freqtrade 策略中不可或缺的“安全卫士”。
通过它们,可以让策略在信号发出后“再三斟酌”,过滤掉不合时宜的买卖操作,显著提高交易的安全性和稳定性。
灵活应用这些函数,你的策略将更具实战韧性,助力长线盈利。