趋势追踪指标源码分享一下?
2024-12-10 09:15:41.54
时财网整理
- 导读:
- 趋势追踪指标是技术分析中常用的一种工具,用于识别市场趋势和潜在的反转点。以下分享几种不同平台和语言编写的趋势追踪指标源码,供各位分析专家参考:# 通达信平台以下是一个适用于通达信平台的趋势追踪指标源码...
趋势追踪指标是技术分析中常用的一种工具,用于识别市场趋势和潜在的反转点。以下分享几种不同平台和语言编写的趋势追踪指标源码,供各位分析专家参考:
# 通达信平台
以下是一个适用于通达信平台的趋势追踪指标源码:
```plaintext
{趋势追踪指标}
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
MA20:=MA(CLOSE,20);
{趋势线}
趋势线: (MA5 + MA10 + MA20) / 3, COLORWHITE;
{多空信号}
多头: IF(CLOSE > 趋势线, 趋势线, DRAWNULL), COLORRED, LINETHICK2;
空头: IF(CLOSE < 趋势线, 趋势线, DRAWNULL), COLORGREEN, LINETHICK2;
{辅助线}
MA60:=MA(CLOSE,60);
辅助线: MA60, COLORYELLOW, LINETHICK1;
{提示}
DRAWTEXT(CROSS(CLOSE, 趋势线), 趋势线, '买入'), COLORYELLOW;
DRAWTEXT(CROSS(趋势线, CLOSE), 趋势线, '卖出'), COLORGREEN;
```
# 文华财经平台(Python + Pandas)
以下是一个适用于文华财经平台的趋势追踪指标源码示例,使用Python语言和Pandas库来实现:
```python
import pandas as pd
def trend_tracking(data, window=20):
""" 计算趋势追踪指标
:param data: 包含价格数据的DataFrame
:param window: 移动平均窗口大小, 默认为20
:return: 包含趋势追踪指标的DataFrame
"""
high = data['High']
low = data['Low']
close = data['Close']
# 计算最高价和最低价的移动平均
atr = (high.rolling(window).max() - low.rolling(window).min()).mean()
# 计算当前价格与前一周期价格的差异
price_diff = close.diff()
# 计算趋势追踪指标
trend_index = price_diff / atr
return trend_index
# 示例数据
data = pd.DataFrame({
'High': [100, 102, 104, 103, 105],
'Low': [98, 99, 101, 100, 102],
'Close': [99, 101, 103, 102, 104]
})
trend_index = trend_tracking(data)
```
# 期魔方平台(专用语言)
以下是一个适用于期魔方平台的魔改版SuperTrend指标源码:
```plaintext
IsMainIndex:=myinput(1);
N:=10;M:=2.5;
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
UP:=(H+L)/2+MA(TR1,N)*M;
DN:=(H+L)/2-MA(TR1,N)*M;
L1:=REF(UP,BARSLAST(UP<=REF(UP,1)));
L2:=LLV(UP,N*1.5);
LL:=IF(L2!=REF(L2,1) AND L1<REF(L1,1),L1,IF(L1=L2,L1,L2));
S1:=BARSLAST(CROSS(0.5,UP=LL))+1;
S2:=CROSS(COUNT((CROSS(C,LL) OR CROSS(C,REF(LL,2))) AND UP>LL,S1),0.5);
A6:=BARSLAST(S2);
B6:=BARSLAST(CROSS(HHV(DN,A6+1),C));
BY:=CROSS(B6,A6);
SL:=CROSS(A6,B6);
DRAWKLINE(HIGH,OPEN,LOW,CLOSE);
SUPERTREN:IF(B6>A6,HHV(DN,BARSLAST(BY)+1),LLV(UP,BARSLAST(SL)+1)),COLORGREEN,LINETHICK2;
IF(B6>A6,SUPERTREN,DRAWNULL),COLOR0000C8,LINETHICK2;
DRAWICON(CROSS(B6,A6),SUPERTREN*0.99,13);
DRAWICON(CROSS(A6,B6),SUPERTREN*1.015,14);
买进:CROSS(B6,A6)*100,NODRAW,COLORRED;
卖出:CROSS(A6,B6)*100,NODRAW;
```
请注意,不同平台的源码不能直接通用,因此在应用时请确保源码与所使用的交易平台相匹配。同时,源码中的参数和计算方式可能需要根据实际情况进行调整和优化。
声明:该内容系网友自行发布,所阐述观点不代表本网(时财网)观点,如若侵权请联系时财网删除。