外汇EA一些入门的知识点
什么是K线? 那一条一条的柱子叫K线 为什么叫K线? 哈哈和。。。我不知道 我只知道怎样判断K线 * 一个K线的开始叫Open[0] 一个K线的结束叫Close[0] * 上一个的K线的开始叫Open[1] 上一个K线的结束叫Close[1] * 上上一个的K线的开始叫Open[2] 上上一个K线的结束叫Close[2] * 所以要判断几时的K线就什么号码 比如:Open[0] Open[1] Open[2] Open[3] Open[4] 比如:Close[0] Close[1] Close[2] Close[3] Close[4] * Close[0]>Open[0] 表示上升 Close[0<Open[0] 表示下降 * 如果你这样编写 if(Close[0]>Open[0] && Close[1]>Open[1] && Close[2]>Open[2] && Close[3]>Open[3]){buyme();} 表示后方有3次上升 然后这一次也是上升 判断就下注上升 也就是买上Buy 反过来就卖下Sell 认识High[0]Low[0] * 一个K线的高点叫High[0] 一个K线的低点叫Low[0] * 上一个的K线的高点叫High[1] 上一个K线的低点叫Low[1] * 上上一个的K线的高点叫High[2] 上上一个K线的低点叫Low[2] * 所以要判断几时K线的高低点就什么号码 比如:High[0] High[1] High[2] High[3] High[4] 比如:Low[0] Low[1] Low[2] Low[3] Low[4] * High[0]-Low[0] 表示我们可以得到他们的差点 * High[1]-Low[1] 表示我们可以得到上一回的差点 * 如果你这样编写 if(Close[0]>Open[0] && Close[1]>Open[1] && (High[1]-Low[1])/Point>10 && (High[0]-Low[0])/Point>10 ){buyme();} 表示后方有上升超过10点 然后这一次是上升超过10点 判断就下注上升 也就是买上Buy 反过来就卖下Sell if(Close[0]<Open[0] && Close[1]<Open[1] && (High[1]-Low[1])/Point>10 && (High[0]-Low[0])/Point>10 ){sellme();} 告诉我以下怎样解读 if(s+b==0 && ma1now>ma2now && (ma1now-ma2now)/point>10 && macd1now>0 && macd2now/point>10 && close[0]>open[0] && high[0]-low[0]/point>10 && close[0]-open[0]/point>10 ){buyme();} * 解读: 如果(买卖等于零 加上 均线1大过均线2 加上 均线1减均线2大过10点 加上 macd1超过零 加上 macd2超过10点 加上 收盘大过开盘 加上 高减低大过10点 加上 收盘减开盘大过10点 ){这样才买上成交} * 所以一些基本的语句 我们是一定要记住和知道的 不知道就不会解读 不会解读就不会编写策略 不会编写就永远作市场的水鱼 * 什么是Point? Point是什么? 为什么叫Point? 为什么要乘以Point? 为什么又除以Point? * Point的英文解释是“点” MT4系统内定 这个Point字代表一个变化的“点” 比如:欧元的计算 1.9356 / Point = 19356 又比如:日元的计算 132.66 / Point = 13266 * 注意:Point是会自动变化的 好处是当你编写程式的时候 不会因为 欧元对美元 欧元对日元 就会出错 * 那么Point有什么用呢? 再比如:High的值减Low的值 或者关盘减开盘 if(Close[0]-Open[0]/Point > 10){buyme();} 他的值可能是 1.3100-1.3270=-170 -170 是没有大过 10 因为是下降,所以没有成交交易 再比如:macd1_0的值减macd1_1的值 再比如:ma1now的值减ma2now的值 * 总之是计算“点”用的 Point 没有固定的值 碰到 GU 可能是 0.0001 碰到 EJ 可能是 0.001 使用的目的就是要把他们变成“整数” * 你可以了解为 除 /Point与 乘 *point /Point小數點往後移 小數變成整數 *Point小數點往前移 整數變成小數 * 例子:EU小數點有4位 EU / Point小數點往后移4位 小數變成整數 JY小數點有2位 JY / Point小數點往后移2位 也是小數点變成整數 JY 的 high[0]-low[0]=小數点 / Point = 整數 EU 的 high[0]-low[0]=小數点 / Point = 整數 例子: JY 的 if( high[0]-low[0] > 10 * Point ){buyme()}; JY 的高盘减低盘大过10点就买上 EU 的 if (high[0]-low[0]> 10 * Point ){buyme()}; EU 的高盘减低盘大过10点就买上 * 这两个答案一样 if (high[0]-low[0]> 10 * Point ){buyme()}; if ( (high[0]-low[0]) / Point > 10 ){buyme()}; * 注意:Point 的 P 是大写的 Ask 的 A 也是大写的 Bid 的 B 要大写 颜色Red 的 R 也是大写的 认识Time[0] * 什么是Time[0]? 没有人告诉过我 我也没有问过任何人 什么是Time[0]? * 很多时候 我们遇到新的词句 我们第一步就是“研究” 而不是问 问了也是白问 因为明天你就忘记了 是忘得一干二尽啊! * 在上一个EA速成班的策略中 我有用到 你还记得吗? 你有注意到吗? * 单看它的写法 应该可以猜到一二 如果你想知道没有他的效果会怎样 简单,把Time[0]给删掉 看看效果怎样 自我学习是不可少的功课 * 认识Time[0] 记住Time[0]的效果 在以后编写策略时 可能会有用到的 认识时间观念 * 很多人在编写策略时 写到到不知道怎样写 这样写也不行 那样也不行 干脆避开热门时间不下注 这就用到时间了 * 有些人只喜欢玩热门时间 比如早上八点到下午3点 * 看看别人编写的 //--- 判断K线开盘时间,以减少运行次数。 ------------------ if( Minute() ==0 ) { return(0); } // 正点时间任何时间段均不运行。 if( Minute()>3 ) { nAllowSend=0; return(0); } // 从此行起可以编写您认为有价值的交易时间,我们现在是开盘3分钟内。 //------------------------------------------------------------- * 看看别人编写的 if(TimeDayOfWeek(TimeCurrent()) == 0 && Allow_Trade_On_Sun == FALSE){ ok_to_trade = FALSE; } if(TimeDayOfWeek(TimeCurrent()) == 1 && Allow_Trade_On_Mon == FALSE){ ok_to_trade = FALSE; } if(TimeDayOfWeek(TimeCurrent()) == 2 && Allow_Trade_On_Tue == FALSE){ ok_to_trade = FALSE; } if(TimeDayOfWeek(TimeCurrent()) == 3 && Allow_Trade_On_Wed == FALSE){ ok_to_trade = FALSE; } if(TimeDayOfWeek(TimeCurrent()) == 4 && Allow_Trade_On_Thu == FALSE){ ok_to_trade = FALSE; } if(TimeDayOfWeek(TimeCurrent()) == 5 && Allow_Trade_On_Fri == FALSE){ ok_to_trade = FALSE; } if(TimeDayOfWeek(TimeCurrent()) == 6 && Allow_Trade_On_Sat == FALSE){ ok_to_trade = FALSE; } if(TimeHour(TimeCurrent()) != 0){ ok_to_trade = FALSE; } if(TimeMinute(TimeCurrent()) != 0){ ok_to_trade = FALSE; } if(ok_to_trade == FALSE){ } else{。。。。。。。。。。 * 看别人的EA就是为了“自我学习” 你学习到了什么? 你看到了什么? * 第一:时间是写在策略的前面 * if(TimeDayOfWeek(TimeCurrent()) == 5 意思就是星期几?5 就是星期5 * 如果要用到小时 应该是这样编写的 if(TimeHour(TimeCurrent()) == 4){。。。 * 如果要用到分钟 应该是这样编写的 if(TimeMinute(TimeCurrent()) == 4){。。。 认识常用之符号 * 如果你不认识这些符号 你很难编写你的EA策略 可能都不知道怎样表达 * a > b 这个代表 a 大过 b * a < b 这个代表 a 小过 b * a == b 这个代表 a 等于 b * a = b 这个也代表 a 等于 b 这两个的分别就是 第一个是编写在前方 if(a==b){ } 第二个是编写在后方 if(a==b){c=b;} * a => b 这个代表 a 大过 b 或者 等于 b * a =< b 这个代表 a 小过 b 或者 等于 b * a && b 这个代表 a 再加上 b 才发生效果 * a || b 这个代表 a 或者 b 都可以发生效果 * + - * / 这个代表 加减乘除 * || 这个符号我在键盘找了好久好久也没有发现 不知道他们是怎样打出来的 问人?哈哈和。。。也没有问过 最近发现原来是这样的 首先 按 Shift 不放 然后 再按 就有 || 出来了 |
打赏
最新创建圈子
- 新闻EA运行效果图圈 2019-05-05
圈主:admin 帖子:1