找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 3|回复: 0

【震荡专攻】专门做震荡的一个EA,欢迎一起交流

[复制链接]

1万

主题

54

回帖

4871

积分

管理员

积分
4871
发表于 2026-8-11 03:11:59 | 显示全部楼层 |阅读模式
初始化与结束逻辑OnInit()函数:在EA启动时执行,主要进行了如下操作:

设置了订单识别码、内部识别码等相关变量。初始化一些数组和变量,如时间戳数组_mPubTsIns等,用于后续逻辑中存储订单相关的时间信息。

OnDeinit(const int reason)函数:在EA停止时执行,根据停止的原因(如图表关闭、程序退出等)执行不同的清理工作:

如果是因为图表移除或程序关闭,可能删除之前创建的对象和全局变量。如果是由于参数修改,仅删除特定的全局变量,保留一些需要持久化的变量。

实时数据处理逻辑(OnTick())时间周期与市场数据获取:首先检查是否超过使用期限,接着根据时间周期变量获取当前图表周期,并确定交易货币对(Symbol())。订单处理逻辑:

订单状态检查:通过一系列的myFun17_x函数(如myFun17_1至myFun17_6)来判断是否满足特定的交易条件,如是否达到RSI指标的上、下限,是否有足够的交易次数等。订单执行与管理:依据判断结果,可能会调用myFun44_1、myFun96_1、myFun32_x等函数,进行订单的开仓、平仓、止损、移动止损和平保等操作。错误处理与记录:在尝试修改订单止损或平仓时,若遇到错误(如错误代码132),会通过Print函数输出错误信息,并可能记录相关操作。

辅助功能全局变量与对象管理:使用GlobalVariableSet、GlobalVariableGet和GlobalVariableDel来管理全局变量,以及myObjectDeleteByPreCap来删除特定前缀的对象,这些操作用于跨函数和跨周期的数据共享与状态记录。时间序列和状态跟踪:定义了多个数组用于存储订单的插入和排除时间戳,以及历史订单的时间戳,这些数据结构有助于跟踪和管理订单生命周期。账户与订单筛选:通过myIsOpenByThisEA2和myOrderOks等函数,检查订单是否由当前EA创建,以及是否满足执行条件,确保操作的精准性和安全性。参数解析与处理:通过myParseStrToDoubleB和myParseStrToDouble函数解析字符串形式的参数列表,如__亏损挂单间隔点数列表,将之转化为数值数组,用于动态调整交易策略。

特殊逻辑处理错误代码处理:在尝试操作订单时,会检查并处理错误代码,如通过GetLastError获取错误信息,并在必要时通过Sleep函数暂停执行,避免频繁操作导致的错误。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-8-27 09:12 , Processed in 0.102035 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表