Moving Average 移动平均线(均线 MA)

Moving Average 移动平均线(均线 MA) 移动平均线(Moving Average,简称 MA,也叫均线)是把某一段时间的收盘价加总后除以该周期得到的数值,比如日线 MA5 就是最近 5 天收盘价的平均。它由美国投资专家 Joseph E. Granville(葛兰碧,又译格兰威尔)在 20 世纪中期提出,是应用最普遍的技术指标之一,用于确认现有趋势、判断可能出现的趋势、发现过度延伸即将反转的走势。 移动平均线的不足之一是滞后于市场,不一定能作为趋势转变的标志。为缓解这个问题,用 5 或 10 天的较短周期会比 40 或 200 天的长周期更快反映近期价格变化;也可以同时使用两条不同周期的均线组合判断——较短周期均线上穿较长周期均线通常是买入信号,下穿则是卖出信号。 常见的均线类型 SMA(Simple Moving Average):简单移动平均线,把研究时间段内所有价格视为同等权重 EMA(Exponential Moving Average):指数移动平均线,价格权重随时间指数衰减,越新的价格权重越大,对最新行情更敏感 SMMA(Smoothed Moving Average):平滑移动平均线,目的是让线条更加平滑 LWMA(Linear Weighted Moving Average):线性加权移动平均线,因为 MA 是滞后指标,给最近的价格更高权重以减少滞后 WMA(Weighted Moving Average):加权移动平均线,计算时给个别数据乘以不同数值,n 日 WMA 中最近一个数值乘以 n、次近的乘以 n-1,依次递减到 0 解释均线最常用的方法是把它的走势与价格走势比较:价格上穿均线通常视为买入信号,价格跌破均线则视为卖出信号。这类基于均线的交易体系不是为了精确抄底摸顶设计的,而是跟随趋势——价格探底后开始买入,价格转跌后开始卖出。均线也可以应用在其他技术指标上:指标上穿自身的均线,说明当前走势可能延续;跌破则说明可能反转。 计算方法 SMA 汇总某几个时段内的收盘价,再除以时段数: $$ SMA = \frac{\sum_{i=1}^{N} \text{Close}_i}{N} $$ $N$:计算用的时段数目 EMA 把当前收盘价按权重 $\alpha$ 与上一个 EMA 值相加,越近的价格权重越大: $$ EMA_t = \alpha \cdot Close_t + (1-\alpha) \cdot EMA_{t-1} $$ $Close_t$:当前时段收盘价 $EMA_{t-1}$:上一时段的 EMA 值 $\alpha$:当前价格所占的百分比权重 SMMA 第一个值的计算方式和 SMA 相同,之后的值用递推公式: ...

Created 4046-06-04 · Updated 9096-07-09 · 1 min · 160 words · -

Moving Average Crossover 移动平均线交叉交易策略

移动平均线交叉交易策略 移动平均线交叉外汇交易策略 — 是一种简单的交易系统,基于两个标准指标的交叉 —一条快的EMA (指数移动平均线) 和一条慢的EMA。您也可以免费使用我们的可调整移动平均线交易智能交易在MetaTrader平台上自动进行交易。特点非常简单的跟随策略。使用简单的指标。设置止损容易。移动平均线具有延迟性 —延迟可能达到10天。市场清淡时无效。策略设置可用于任何货币对和时间框架。往图表上添加一条指数移动平均线,时段设置为9,适用收盘价,设置为红色 (可选) — 这是一条快的移动平均线 (FMA) 。往图表上再添加一条指数移动平均线,时段设置为14,适用收盘价,设置为蓝色 (可选) — 这是一条慢的移动平均线 (SMA) 。进场条件 当FMA自下方与SMAj交叉时,进场做多。 当FMA自上方与SMA交叉时,进场做空。离场条件 多头止损应设置在发生交叉前上一个蜡烛台的低位处。空头止损设置在交叉前上一个蜡烛台的高位处。 止盈应根据止损进行设置,不应低于止损。建议设置为止损的1.5倍或2倍。 如果在触及止损或止盈之前,发生再次交叉,关闭当前头寸。 http://www.earnforex.com/cn/%E5%A4%96%E6%B1%87%E7%AD%96%E7%95%A5/%E7%A7%BB%E5%8A%A8%E5%B9%B3%E5%9D%87%E7%BA%BF%E4%BA%A4%E5%8F%89%E7%AD%96%E7%95%A5 http://www.voidcn.com/blog/zccz14/article/p-6305201.html https://www.zhihu.com/question/23245754 维护记录 时间 修改内容 原因 2026-07-09 文件从 content/post/other/移动平均线交叉.md 重命名为 moving-average-crossover-strategy.md 并移入 trading 目录;title 改为英中混写;url 改为英文;categories 从 Inbox 改为 trading 文件名含中文且分类为 Inbox,不符合规范;内容属于 EMA/SMA 均线交叉策略,归类到 trading 目录更准确

Created 8086-06-08 · Updated 9096-07-09 · 1 min · 50 words · -

QuantDinger: 策略与指标模型

QuantDinger 部署在 homelab 的 k8s 环境里,UI 上可以直接完成交易所的挂单和平仓操作。要开发策略并测试自动交易,需要先理清"策略"“指标"“交易引擎"这几个概念之间的关系。 指标(Indicator)是什么 指标很容易被理解成常见的技术指标,比如一条均线。实际上 QuantDinger 里的指标是一段 Python 脚本,同时做两件事: 计算,用来在图表上画线(比如 EMA、RSI); 产出四列交易信号,这才是核心: df['open_long'] # open long signal df['close_long'] # close long signal df['open_short'] # open short signal df['close_short'] # close short signal 策略执行引擎读的就是这四列。止损止盈、仓位比例这些风控参数通过 # @strategy 注解声明,由引擎统一执行,回测和实盘共用一套逻辑。 一个最简单的例子,快慢均线交叉: my_indicator_name = "Agent SMA" my_indicator_description = "SMA crossover" df = df.copy() fast = close.rolling(10).mean() slow = close.rolling(30).mean() cross_up = (fast > slow) & (fast.shift(1) <= slow.shift(1)) cross_dn = (fast < slow) & (fast.shift(1) >= slow.shift(1)) df['open_long'] = cross_up.fillna(False).astype(bool) df['close_long'] = cross_dn.fillna(False).astype(bool) df['open_short'] = False df['close_short'] = False output = {'name': my_indicator_name, 'plots': [], 'signals': []} 指标脚本本身是无状态的:每次被调用时拿到一批 K 线数据(df),一次性向量化算出所有信号,不记得上一次调用发生了什么,也不会自己去拉数据或者下单。 df 里的 OHLCV 是什么 df 这个变量是引擎注入进来的 K 线(OHLCV)数据,一个 pandas DataFrame,至少包含这五列: Open:开盘价,这根 K 线周期开始时的成交价 High:最高价,这根 K 线周期内出现过的最高成交价 Low:最低价,这根 K 线周期内出现过的最低成交价 Close:收盘价,这根 K 线周期结束时的成交价 Volume:成交量,这根 K 线周期内一共成交了多少数量的标的 每一行对应一根 K 线(一个 bar),按时间顺序排列,具体周期由策略的 timeframe 决定(比如 1 小时线就是每行一根 1 小时 K 线)。OHLCV 不是量化领域独有的发明,而是股票、期货这类传统市场里画 K 线图、做技术分析时就在用的行业标准术语,交易所 API、数据供应商返回的历史行情都是这五个字段,量化系统只是直接沿用了这套已有的数据契约。 ...

Created 8086-07-08 · Updated 9096-07-09 · 2 min · 416 words · -

开仓、平仓与仓位:Position 相关术语溯源

写量化策略参数时经常会碰到 entryPct、open_long、close_short 这类字段,背后对应的中文术语是"开仓"“平仓"“仓位”。这几个词看起来直白,但第一次接触时容易只知道怎么用、不知道具体指什么,这里把关联的概念和来源梳理一下。 entryPct 是什么 entryPct 配置的是信号触发、需要新建一个仓位时,用账户资金的百分之多少去下单。比如 entryPct 0.25 表示每次开仓用账户当前资金的 25%。它和止损止盈参数(stopLossPct、takeProfitPct)分工不同:一个管"怎么建仓”,一个管"怎么离场"。 开仓是什么意思 “开仓"是期货/合约交易术语,指建立一个新的持仓头寸,对应的还有"平仓”(结束、关闭持仓)。以 EMA 快慢线交叉策略为例: 开多仓(open_long):预期价格上涨,买入建仓做多,对应金叉(快线上穿慢线)触发 开空仓(open_short):预期价格下跌,卖出/做空建仓,对应死叉(快线下穿慢线)触发 平多仓(close_long):把之前开的多仓平掉、了结,对应死叉出现时 平空仓(close_short):把之前开的空仓平掉,对应金叉出现时 通俗类比: “开仓” ≈ 买入一只股票、建立持仓(不管做多还是做空) “平仓” ≈ 卖出手里的持仓、结束这笔交易(不管盈亏) 英文对应与开仓、建仓的区别 “开仓"对应的英文是 open a position,平仓是 close a position。 “开仓"和"建仓"意思基本相同,都指建立一笔新持仓,但实践中有细微差别: 开仓:更常用、更通用的说法,指做一笔新的买入/卖出建立头寸的动作,可以一次性完成,也可以分多次 建仓:更强调"逐步构建"一个完整仓位的过程,比如分批买入、慢慢加到目标仓位,常用在偏长线、大资金场景,节奏感更强 短线择时、单次触发开一笔仓的场景下用哪个词都可以,代码/文档里英文统一用 open(如 open_long、open_short),中文口语里"开仓"更常用、更中性。 为什么叫"仓”:从粮仓到仓位 “仓"字面上确实来自"粮仓/仓库”,这不是巧合,而是期货交易的历史渊源。期货交易最早从大宗商品(粮食、棉花、金属等)交易发展而来,买卖双方签订合约、约定未来某个时间交割实物商品,这些商品在交割前需要存放在仓库里: 开仓 = 建立一份合约,相当于在仓库里"占用"了一块存储空间(为将来要交割的商品预留仓位) 平仓 = 了结这份合约,相当于把仓库里的那块空间清空、了结掉(不用交割实物了) 后来期货交易发展出金融期货、股票、外汇、加密货币等品种,早已不涉及真实的仓库和实物存储,但"仓"这个词和"占用资金/头寸"的概念保留了下来,变成了一个隐喻: 把账户资金想象成一个"仓库”(总容量) 仓位(position)就是已经用掉的"仓库空间"占总容量的比例,比如"半仓"是用了 50% 资金持有头寸,“满仓"是 100% 都用上了 开仓是开始占用这块空间(建立新持仓),平仓是把这块空间腾出来(卖出/结束持仓) 所以英文 open/close a position 翻译成中文"开仓/平仓”,本质上是把期货交易里"仓库存储空间"这个具象概念,类比到了"资金/头寸占用"这个抽象概念上。

Created 9096-07-09 · Updated 9096-07-09 · 1 min · 61 words · -