EA能在其中一张图表交易多品种吗? - 页 3

 
CHARLES_CHUI666 #:
大哥们 没人能指导一下吗 

首先回答你的问题。【EA能在其中一张图表交易多品种吗?】

--答案是,可以。


但是,不建议。理由:

1.作为初学者,一开始就想搞这么通用的,不太现实,代码会复杂很多。比如你的EA要同时搞两个货币的交易,就查个收盘价,你得写两次 iClose(参数略),但如果你只是面对一个品种,你只需要管好这个品种。比如查询收盘价,只需调用Close(),你的EA放到哪个图表就查哪个图表的数据(收盘价),不用你操心,而前者如果你要做20个品种,单是查个收盘价,你都得写20次。如果你按一个货币写,你设计时只需考虑一个货币,使用当前货币查询的函数比如前面提到的Close(),就可以,而这并不意味着你的EA只能用于一个品种,你扔到几个品种上,就是同时做几个品种。思维压力明显减小。以我所见的非专业程序员,其实没几个hold得住这样的写法,写着写着自已就乱了。大多数这样的写法其实不太必要。

2.每个货币的价格跳动频率不太一样(也就是Tick跳数),同一时间有的货币一秒钟跳十几下,有的货币只跳几下。这带来的影响也很显然:

1)及时性。如果你的EA扔在一个不太活跃的品种,那有可能导致延误了活跃品种的交易。

2)不管你的EA放的品种放的是哪个品种,因为涉及及时性的问题,哪怕你不要求tick级别交易,那也有可能因为报价不合而导致交易指令(包括开仓、平仓、止损/止盈的修改)失败。这里有一个细节,就是发送指令时会包括有一个当前报价,而这个报价通常来源于上一个tick。你的EA如果放的是A货币而查询的是B货币的报价,很多时所查报价还不是最新的,那么当这个指令到达服务端时与服务端报价相差过大,从而导致失败。

3.风控及资控角度。其实以大多数人的资金不外乎也就几百刀一两千刀,能拿出5000刀的已经很少数。就这样的资金实属没必要交易太多货币,除非你真的针对“这一篮子货币”作策略。多品种交易,有时会由于一些不可控因素,它们会存在一些同质化地对你不利(比如几个货币同时亏损),你也不知道会亏多少,难以评估。

 
太高深了 新手一脸懵逼的进来
 
Guo Zheng Feng #:

首先回答你的问题。【EA能在其中一张图表交易多品种吗?】

--答案是,可以。


但是,不建议。理由:

1.作为初学者,一开始就想搞这么通用的,不太现实,代码会复杂很多。比如你的EA要同时搞两个货币的交易,就查个收盘价,你得写两次 iClose(参数略),但如果你只是面对一个品种,你只需要管好这个品种。比如查询收盘价,只需调用Close(),你的EA放到哪个图表就查哪个图表的数据(收盘价),不用你操心,而前者如果你要做20个品种,单是查个收盘价,你都得写20次。如果你按一个货币写,你设计时只需考虑一个货币,使用当前货币查询的函数比如前面提到的Close(),就可以,而这并不意味着你的EA只能用于一个品种,你扔到几个品种上,就是同时做几个品种。思维压力明显减小。以我所见的非专业程序员,其实没几个hold得住这样的写法,写着写着自已就乱了。大多数这样的写法其实不太必要。

2.每个货币的价格跳动频率不太一样(也就是Tick跳数),同一时间有的货币一秒钟跳十几下,有的货币只跳几下。这带来的影响也很显然:

1)及时性。如果你的EA扔在一个不太活跃的品种,那有可能导致延误了活跃品种的交易。

2)不管你的EA放的品种放的是哪个品种,因为涉及及时性的问题,哪怕你不要求tick级别交易,那也有可能因为报价不合而导致交易指令(包括开仓、平仓、止损/止盈的修改)失败。这里有一个细节,就是发送指令时会包括有一个当前报价,而这个报价通常来源于上一个tick。你的EA如果放的是A货币而查询的是B货币的报价,很多时所查报价还不是最新的,那么当这个指令到达服务端时与服务端报价相差过大,从而导致失败。

3.风控及资控角度。其实以大多数人的资金不外乎也就几百刀一两千刀,能拿出5000刀的已经很少数。就这样的资金实属没必要交易太多货币,除非你真的针对“这一篮子货币”作策略。多品种交易,有时会由于一些不可控因素,它们会存在一些同质化地对你不利(比如几个货币同时亏损),你也不知道会亏多少,难以评估。

现在才看到,感谢你的解答,有道理,我之前挂了一段时间也发现这些情况,我是如下解决的:第1点,策略一样的,所以不需要怎么改,用遍历解决;第2点:我的不是剥头皮的EA,而且我设定了每个关键K线的节点最后3秒和头3秒不运行EA避免时间的节点偏差(譬如30分钟K1小时K或者4小时K等等);第3点:分别加载在镑美和欧美,活跃度可以保证;第4点就是因为策略不算频繁交易,而且会控制账户可用金额去判断下不下单的

 
my15605613828 #:

建一个数组 

string symbols []={"eurusd", "eurusd" , "eurusd" , "eurusd" , "eurusd" };

for  遍历数组

{

symbol = symbols[i]

//----


以下是你的代码




}

虽然现在才看到,已经解决,也是用遍历的方法,但还是谢谢你。

 
Xian Qin Ceng #:
这个问题有点复杂,免费的怕是没有人愿意搞

不复杂,FOR循环解决

 
CHARLES_CHUI666:
如题,因为我准备交易15种以上货币对,但如果每个图表都加载EA的话相当麻烦,修改也是。我想问各位大佬,MT4和MT5能把所有EA汇总在一个总的EA,然后只加载一个任意品种和周期的图表而达到同时加载了20个不同品种的图表的效果吗?

我的EA可以,MT5版本的,可以在EA上直接设置要交易的多个品种

 
当然可以,多品种共同持仓