📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    外汇EA一些入门的知识点

    yanni LV17
    2016-08-01 · 3902 阅读
    什么是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 不放
    然后 再按 \ 就有 || 出来了


    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 2 个

    mks LV2

    发表于 2016-10-21 16:13:06 | 显示全部楼层

    感谢分享,谢谢谢谢

    stchw916 LV0

    发表于 2016-10-22 19:19:20 | 显示全部楼层

    感谢分享,谢谢谢谢
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服