设为首页 收藏本站 切换语言 切换语言

TV自动交易脚本编写成MT5版本量化EA

| 发表于 2025-12-24 16:41:27 | 显示全部楼层 |复制链接
任务编号:170230 悬赏任务2H币 悬赏任务 : 按雇主需求进行任务后提交稿件,被采纳后即获得佣金。

距截止: 任务已圆满完成 雇主已托管赏金:2 H币
雇主发布需求25.12.24 雇主托管佣金25.12.24 投稿者投稿 雇主开始选稿 任务完成26.01.04

任务大厅共需1个合格投稿 | 每稿将获得2 H币 | 每人交稿次数不限 可多次任务

投诉举报 联系Ta 我来承接 已有0 个投稿 | 已采纳0 稿 | 拒绝0 稿 | 还需要1 稿

任务需求:
TradingView自动交易脚本编写成MT5版本量化EA,最小开仓手数0.01(可自行调节),指标可显示图表



//@version=5
strategy(" 超级趋势与 EMA 结合的动态趋势跟踪策略", overlay=true)

// 超级趋势的输入参数
atr_length = input.int(10, title="ATR 长度")  // 定义 ATR 长度的输入,默认为 10
factor = input.float(3.0, title="ATR 因子")  // 定义 ATR 因子的输入,默认为 3.0

// EMA 的输入参数
ema_length = input.int(100, title="EMA 长度")  // 定义 EMA 长度的输入,默认为 200

// 止损和止盈的输入参数
stop_loss_perc = input.float(1.0, title="止损百分比", step=0.1) / 100  // 定义止损百分比的输入,默认为 1.0%
take_profit_perc = input.float(5.0, title="止盈百分比", step=0.1) / 100  // 定义止盈百分比的输入,默认为 5.0%

// 计算 EMA 200
ema_200 = ta.ema(close, ema_length)  // 计算收盘价的 EMA 200

// 计算超级趋势
atr = ta.atr(atr_length)  // 计算 ATR 值
upperband = hl2 + (factor * atr)  // 计算上轨
lowerband = hl2 - (factor * atr)  // 计算下轨

var float supertrend = na  // 定义超级趋势变量并初始化为 na
var int direction = na  // 定义方向变量并初始化为 na

// 在第一根柱线上初始化超级趋势
if (na(supertrend[1]))  // 如果前一根柱线的超级趋势为 na
    supertrend := lowerband  // 将超级趋势初始化为下轨
    direction := 1  // 方向初始化为 1
else
    // 更新超级趋势的值
    if (direction == 1)  // 如果当前方向为 1
        supertrend := close < supertrend[1]? upperband : math.max(supertrend[1], lowerband)  // 根据条件更新超级趋势
    else
        supertrend := close > supertrend[1]? lowerband : math.min(supertrend[1], upperband)  // 根据条件更新超级趋势

    // 更新方向
    direction := close > supertrend? 1 : -1  // 根据收盘价与超级趋势的关系更新方向

// 多头条件:超级趋势为绿色且价格高于 EMA 200
longCondition = direction == 1 and close > ema_200  // 定义多头条件

// 空头条件:超级趋势为红色且价格低于 EMA 200
shortCondition = direction == -1 and close < ema_200  // 定义空头条件

// 绘制 EMA 200
plot(ema_200, title="EMA 200", color=color.blue, linewidth=2)  // 绘制 EMA 200 曲线

// 绘制超级趋势
plot(supertrend, title="超级趋势", color=direction == 1? color.green : color.red, linewidth=2)  // 绘制超级趋势曲线

// 计算多头头寸的止损和止盈水平
long_stop_loss = close * (1 - stop_loss_perc)  // 计算多头止损水平
long_take_profit = close * (1 + take_profit_perc)  // 计算多头止盈水平

// 计算空头头寸的止损和止盈水平
short_stop_loss = close * (1 + stop_loss_perc)  // 计算空头止损水平
short_take_profit = close * (1 - take_profit_perc)  // 计算空头止盈水平

// 多头头寸的策略入场和出场
if (longCondition and not na(supertrend))  // 如果满足多头条件且超级趋势不为 na
    strategy.entry("Long", strategy.long, stop=long_stop_loss, limit=long_take_profit,comment="开多")  // 进行多头入场操作
if (strategy.position_size > 0 and shortCondition)  // 如果多头头寸持仓且满足空头条件
    strategy.close("Long",comment="平多")  // 关闭多头头寸

// 空头头寸的策略入场和出场
if (shortCondition and not na(supertrend))  // 如果满足空头条件且超级趋势不为 na
    strategy.entry("Short", strategy.short, stop=short_stop_loss, limit=short_take_profit,comment="开空")  // 进行空头入场操作
if (strategy.position_size < 0 and longCondition)  // 如果空头头寸持仓且满足多头条件
    strategy.close("Short",comment="平空")  // 关闭空头头寸
任务需求补充1746857390 补充于2025-12-24 16:55
在TV我有实盘记录,不要顺便编写,需要符合我的原版
举报

评论 使用道具

上一篇 : 求EA
下一篇 : EA限制解除
发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

 简体中文国旗 简体中文
 繁體中文国旗 繁體中文
 English国旗 English(英语)
 日本語国旗 日本語(日语)
 Deutsch国旗 Deutsch(德语)
 Русский язык国旗 Русский язык(俄语)
 بالعربية国旗 بالعربية(阿拉伯语)
 Türkçe国旗 Türkçe(土耳其语)
 Português国旗 Português(葡萄牙语)
 ภาษาไทย国旗 ภาษาไทย(泰国语)
 한어国旗 한어(朝鲜语/韩语)
 Français国旗 Français(法语)
翻译