论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
前往
共 22 条
查看:2973回复:21
汇有财
注册时间2010-02-12
[原创]求EA编程高手帮忙,多谢了
楼主发表于:2010-08-08 12:00只看该作者倒序浏览
1楼 电梯直达
电梯直达
先说说对英镑一点看法,英镑大方向我是看多,但下周英镑回调200点以上的可能性是非常大的,所以下周决定找位置平掉所有多仓,等合适位置在做多 发帖主要目的是想请EA编程高手帮忙解个惑,刚学EA编程,遇个问题在软件区发了个贴,可那边人太少,一个周了都没人回复,只好在这边发个帖了,论坛有没有懂EA编程的朋友,可否帮个忙,多谢了 帖子地址 http://www.talkforex.com/thread-183544-1-1.html
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
落叶不落
注册时间2007-12-13
驿站美文奖积极参与奖健康使者奖
发表于:2010-08-08 16:36只看该作者
2楼
哇靠 两个帖子就圣斗士 呦 炸糕滴尼:o :o
汇有财
注册时间2010-02-12
楼主发表于:2010-08-10 13:23只看该作者
3楼
原帖由 落叶不落 于 2010-8-9 00:36 发表 http://www.talkforex.com/images/common/back.gif 哇靠 两个帖子就圣斗士 呦 炸糕滴尼:o :o
:handshake 我也不知道啊emoji-image :lol emoji-image
fengkun
注册时间2009-12-02
发表于:2010-08-10 14:33只看该作者
4楼
1、High[0]是当前正在变化的K线的最高价; 2、没太看明白是什么意思?这两条语句是计算指标的经典格式,不需要改变的。程序会自动计算当前图表中每一根K线的最价与最低价的差值并且显示在副图中,不需要你刻意去选择某一根K线而去处理它。不管你如何变化当前图表,指标都会一一对应。当前变化的K线的指标会不断变化,直到新的K线的出现。 [ 本帖最后由 fengkun 于 2010-8-10 22:57 编辑 ]
汇有财
注册时间2010-02-12
楼主发表于:2010-08-10 15:21只看该作者
5楼
原帖由 fengkun 于 2010-8-10 22:33 发表 http://www.talkforex.com/images/common/back.gif 1、High[0]是当前正在变化的K线的最高价; 2、没太看明白是什么意思?这两条语句是计算指标的经典格式,不需要改变的。程序会自动计算当前图表中每一根K线的最价与最低价的差值并且显示在副图中,不需要你刻意去选择 ...
朋友你好,谢谢你的热心回复,High[0]是当前正在变化的K线的最高价;这个我知道。第一个问题我想问的是,假如图表上有20根k线,第20根k 线是正在跳动的k线,那程序计算的是最新的K线(K[0])还是次新K线(K[1])。第二个问题我是想搞清楚这个程序运算原理和过程,这两条语句是防止程序重复计算程序已经计算过的K线,我想让懂的朋友帮忙把我举得例子(假如图表上有20根k线,第20根k 线是正在跳动的k线)中的值代入这两条代码中,也就是第20根k 线是正在跳动的k线时,这两句代码是怎样运算的,我想知道运算的过程,只要将下面 代码中的问号换成例子中的值就可以了 if (?>0) ?--; int pos=?-?; 谢谢,非常感谢朋友的回复:handshake emoji-image :lol emoji-image [ 本帖最后由 汇有财 于 2010-8-10 23:41 编辑 ]
汇有财
注册时间2010-02-12
楼主发表于:2010-08-18 11:19只看该作者
6楼
论坛有会EA编程的朋友么,可否帮忙解答一下,谢谢 :handshake emoji-image :lol emoji-image
evanto
注册时间2010-08-14
发表于:2010-08-19 12:05只看该作者
7楼
第20根K线是过去式了吧,怎么还会跳?
hvv
注册时间2007-12-06
发表于:2010-08-19 13:05只看该作者
8楼
原帖由 汇有财 于 2010-8-10 23:21 发表 http://www.talkforex.com/images/common/back.gif 朋友你好,谢谢你的热心回复,High[0]是当前正在变化的K线的最高价;这个我知道。第一个问题我想问的是,假如图表上有20根k线,第20根k 线是正在跳动的k线,那程序计算的是最新的K线(K[0])还是次新K线(K[1]) ...
亲爱的朋友: 你所说的"第20根k线是正在跳动的k线" 即是当前K线 K[0] . 每当价格跳动一下程序就运行一次次 start() 函数相当于 最高级别中断程序, 当然这时即可获得最新Close[0]. 另外一重要问题---时程序中k线排序是由右向左[ ---6 5 4 3 2 1 0 ] . "0" 是当前k线. 与你的排序正好相反. "防止程序重复计算程序已经计算过的K线" 你可采用较简的方法[适用多数情况]即让程序设全局变量保存open[1] high[1] low[1] close[1] 的数值, 当新K线出现时 相保存K线会后移, 新K线open[1] high[1] low[1] close[1] 就会变化. 用IF..来判断四变量是否不同 即可达到----"防止程序重复计算程序已经计算过的K线"
汇有财
注册时间2010-02-12
楼主发表于:2010-08-23 11:29只看该作者
9楼
原帖由 hvv 于 2010-8-19 21:05 发表 http://www.talkforex.com/images/common/back.gif 亲爱的朋友: 你所说的"第20根k线是正在跳动的k线" 即是当前K线 K[0] . 每当价格跳动一下程序就运行一次次 start() 函数相当于 最高级别中断程序, 当然这时即可获得最新Close[0]. 另外一重要问 ...
谢谢hvv朋友的热心回复,您说的---“你所说的"第20根k线是正在跳动的k线" 即是当前K线 K[0] . 每当价格跳动一下程序就运行一次次 start() 函数相当于 最高级别中断程序, 当然这时即可获得最新Close[0]. 另外一重要问题---时程序中k线排序是由右向左[ ---6 5 4 3 2 1 0 ] "0" 是当前k线. 与你的排序正好相反. ”-----这些我都知道,可这些都不是我想问的问题,可能是我表达的不够清楚 其实我的问题就两个: 第一个问题我想问的是,假如图表上有20根k线,第20根k 线是正在跳动的k线,那程序计算的是最新的K线(K[0])还是最新K线的前一根K线(K[1])。只需要回答我K[0]还是K[1]就可以了 第二个问题是当第20根k 线正在跳动的时候这两句代码的运算过程,所以想让朋友帮我把例子中的值代入这两句代码中,也就是只要将下面 代码中的问号换成例子中的值就可以了 if (?>0) ?--; int pos=?-?; 其实就是想知道pos这个变量的值(也就是我问的第一个问题中K线序号的值)得出的过程 不知道这次我表达的是否清楚,望各位懂EA编程的朋友有时间可否直接回答一下我的这两个问题 另外你说的采用设全局变量的方法我怎么感觉比我问的这两句代码还要繁琐,不知道是否会降低程序运算效率。我学习EA编程时间不长,之前没有编程 基础,有说的不对的,还望朋友海涵、见谅:handshake :handshake 再次向您表示感谢,非常谢谢:handshake:handshake 因事情多回复的晚了,在这也向回复的各位朋友表示抱歉 望其他懂EA编程的朋友有时间也能帮忙直接回答一下我的这两个问题 :handshake :victory: :lol [ 本帖最后由 汇有财 于 2010-8-23 19:42 编辑 ]
个性签名

韬客社区www.talkfx.co

汇有财
注册时间2010-02-12
楼主发表于:2010-08-23 11:31只看该作者
10楼
原帖由 evanto 于 2010-8-19 20:05 发表 http://www.talkforex.com/images/common/back.gif 第20根K线是过去式了吧,怎么还会跳?
谢谢朋友您的热心回复,我说的例子中第20根K线就是最新的K线,当然是正在跳动的了,你看看8楼朋友的回复就知道了:handshake :victory: :lol
汇有财
注册时间2010-02-12
楼主发表于:2010-08-28 07:16只看该作者
11楼
今天有时间,顶顶贴,看有没有热心的高手可以帮忙解答emoji-image :handshake
StanleyM
注册时间2010-04-16
发表于:2010-08-28 09:30只看该作者
12楼
还没搞定?貌似已经有人回了。没细看帖子,给你加个注释,看哥能明白否。不一定精确,只是个大概:P。 int counted_bars=IndicatorCounted(); ---取得已经计算过的BAR数(没变化的BAR)。比如图表有200Bars,第一次启动IndicatorCounted()=0 导致整表全算。平时运行时一般是199。 if (counted_bars<0) return(-1); ---IndicatorCounted()函数本身出问题了(函数正常的话至少是0) if (counted_bars>0) counted_bars--; ---199变成198(后边解释) int pos=Bars-counted_bars 一般情况下前199Bars没变化,pos=200-199=1 后边的循环执行一回把跳动中的Bar计算就可以了。 一般是for(i=0;i<1;i++){.......} pos=200-(199-1)=2会计算最新的2Bars,其中一个是已经算过的,一个是正在跳动中 真正需要计算的(一般的情况)。 但是某些特例会是你的程序出问题,比如一些边界情况(拿30Min图为例): 16:59:59.999时刻start()启动了,你的程序正在执行中,时间变为17:00:00 出了一个新Bar,16:30,17:00两个Bars都没计算过, for(i=0;i<2;i++){.......}会是程序一切正常, for(i=0;i<1;i++){.......}会出问题 也就是说”counted_bars--“大多数情况会白算一个BAR,但可保证一些特例时程序 一切正常。 其实if (counted_bars>0) counted_bars--;变为 if (counted_bars>0) counted_bars = counted_bars - 2;也可以,但有一个BAR100% 的白算了。 不知明白了否。
cgcba
注册时间2010-05-11
发表于:2010-08-28 09:45只看该作者
13楼
为啥我感觉这个和VC++好像啊。有区别没?
汇有财
注册时间2010-02-12
楼主发表于:2010-08-28 10:46只看该作者
14楼
原帖由 StanleyM 于 2010-8-28 17:30 发表 http://www.talkforex.com/images/common/back.gif 还没搞定?貌似已经有人回了。没细看帖子,给你加个注释,看哥能明白否。不一定精确,只是个大概:P。 int counted_bars=IndicatorCounted(); ---取得已经计算过的BAR数(没变化的BAR)。比如图表有200Bars,第一 ...
非常感谢StanleyM兄的回复,:handshakeemoji-image :lol 我原来一直困惑的就是为什么要加”counted_bars--“这句,因为加了这句是算K[1]这根K线,不加这句就是算K[0]这根K线,你说是为了保证一些特例时程序运行正常,这样为什么要多算一根K线我就懂了。 但还是有一个问题不懂,emoji-image pos这个变量在程序中是用来标注要运算的K线的序列号的。那最新K线的序号应该是K[0],前一根K线应该是K[1],再前一根K线应该是K[2],如果按照你说的
pos=200-(199-1)=2会计算最新的2Bars,其中一个是已经算过的,一个是正在跳动中 真正需要计算的(一般的情况)。
,pos得出的值应该是2,那计算的就是K[2]这根K线,那是不是会白算两根K线,而不是白算一根emoji-image 还有你说的
其实if (counted_bars>0) counted_bars--;变为if (counted_bars>0) counted_bars = counted_bars - 2;也可以,
这句话中是不是应该改成if (counted_bars>0) counted_bars = counted_bars - 1emoji-image 最后还是非常感谢StanleyM兄的热心回复,:handshake emoji-image :lol emoji-image 如果tanleyM兄有时间可否再回复一下我后面的疑问 [ 本帖最后由 汇有财 于 2010-8-28 18:54 编辑 ]
汇有财
注册时间2010-02-12
楼主发表于:2010-08-28 10:49只看该作者
15楼
原帖由 cgcba 于 2010-8-28 17:45 发表 http://www.talkforex.com/images/common/back.gif 为啥我感觉这个和VC++好像啊。有区别没?
感谢朋友回复,:handshake :lol emoji-image MQL4和c语言是相近的,区别不大
StanleyM
注册时间2010-04-16
发表于:2010-08-28 11:24只看该作者
16楼
原帖由 汇有财 于 2010-8-28 18:46 发表 http://www.talkforex.com/images/common/back.gif pos得出的值应该是2,那计算的就是K[2]这根K线,那是不是会白算两根K线,而不是白算一根emoji-image 还有你说的 ...
看了一下程序的循环部分,应该是计算了K[2],K[1],K[0]. 依具体情况一般是这样写,limit=2时计算K[1],K[0],应该没问题。 for(i=0; i=0; i--) {......} 程序计算了K[2],一是想更可靠? 或是循环体里的指标需要再计算K[2]?, 也有可能是BUG;P。(程序不出错,所以也没在意) 我可能没想全面,如果指标运行在1Min图上,比如有时5分钟都没来新的一跳(或许有可能), 应该多算几个Barsif (counted_bars>0) counted_bars=counted_bars-5也许可以理解。 15Min图以上的话,没必要算K[2] [ 本帖最后由 StanleyM 于 2010-8-28 19:34 编辑 ]
汇有财
注册时间2010-02-12
楼主发表于:2010-08-28 11:42只看该作者
17楼
原帖由 StanleyM 于 2010-8-28 19:24 发表 http://www.talkforex.com/images/common/back.gif 看了一下程序的循环部分,应该是计算了K[2],K[1],K[0]. 依具体情况一般是这样写,limit=2时计算K[1],K[0],应该没问题。 for(i=0; i=0; i--) {......} 程序计算了K[2],一是想更可靠? 或是循环体里的指标需 ...
那”counted_bars--“这句是不是多余的,是不是去掉这句就可以了,去掉这句就可以从K[1]算了,还是应该是 if(200>0) 200--; int pos= 200-199; 谢谢回复:handshake :victory: :lol
汇有财
注册时间2010-02-12
楼主发表于:2010-08-29 07:14只看该作者
18楼
从我问这个问题开始(包括在别的网站),有的人告诉我是if (20>0) 20--; int pos=20-20=0;:lol 有的人告诉我是if (20>0) 20--; int pos=20-19=1;:lol 有的人告诉我是if (19>0) 19--; int pos=20-18=2;:lol 到目前为止我已经得到三个答案了:033: ,我已经彻底晕了:036: ,谁能告诉我到底哪个答案是正确的,程序运算的到底是K[0],还是K[1],还是K[2],还有”counted_bars--“这句在程序中到底有没有意义,如果没有意义是不是可以去掉 再次向热心回复的朋友表示感谢:handshake :victory: :lol :$ [ 本帖最后由 汇有财 于 2010-8-29 15:23 编辑 ]
ieforex
注册时间2003-08-08
发表于:2010-08-29 07:28只看该作者
19楼
咦 老地主也会编程了 我以为只会数老玉米棒子呢
个性签名

我的毛病 想赢怕输 犹豫不定 盲目跟从 短线长做 长线短做 追涨杀跌 不做计划 擅改目标 贪多嫌少 逆市而为
最大的毛病:以上错误一犯再犯,怨天尤人,只说别人 不看自己。吃的是草,挤的是眼睛。

汇有财
注册时间2010-02-12
楼主发表于:2010-08-29 07:47只看该作者
20楼
原帖由 ieforex 于 2010-8-29 15:28 发表 http://www.talkforex.com/images/common/back.gif 咦 老地主也会编程了 我以为只会数老玉米棒子呢
俺很想做地主:$ ,可目前还不具备资格,等俺做外汇赚钱了一定要做地主:051: 。不过地主好像只租地收租不干活,所以数玉米滴活应该不归地主干:lol emoji-image emoji-image
  • 1
  • 2
前往
共 22 条

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]