文档章节

基于两个移动平均线交叉的EA

cuyi
 cuyi
发布于 2017/05/16 13:52
字数 296
阅读 48
收藏 0
MQL
extern double     Lots=0.1;
extern double     Pip=5;
extern double     MoveBack=3;
extern int        chk=0;
extern double     SL=20;

int start()
    {
        double hi=High[1];
        double lo=Low[1];
        double EMA, EMA1, EMA2, EMA3;
        int cnt=0, ticket, total;
        EMA=iMA(0,0,5,0,MODE_EMA,PRICE_MEDIAN,1);
        EMA1=iMA(0,0,10,0,MODE_EMA,PRICE_MEDIAN,1);
        EMA2=iMA(0,0,5,0,MODE_EMA,PRICE_MEDIAN,0);
        EMA3=iMA(0,0,10,0,MODE_EMA,PRICE_MEDIAN,0);
        total=OrdersTotal();    #获取订单总数
        
        if(total<1)
            {
                if(AccountFreeMargin()<(1000*Lots)) 
                    {
                        Print("帐户余额 = ", AccountFreeMargin());
                        return(0);
                    }
                
                 if(((EMA>EMA1) && (EMA2<EMA3)) || ((EMA<EMA1) && (EMA2>EMA3)))
                    {
                        chk=1;
                        Print("可入场!");
                    }
               
                 if(chk==1)
                    {
                        if(EMA3-EMA2>2*Point && Bid>=(lo+MoveBack*Point))
                            {
                                ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"EMA position:",16385,0,Red);
                                if(ticket>0)
                                    {
                                        if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
                                            {
                                                Print("未结订单 SELL : ",OrderOpenPrice());
                                                chk=0;
                                            }
                                        else
                                            {
                                                Print("错误打开卖单 : ",GetLastError()); 
                                                return(0); 
                                            }
                                    }
                            }
                        if(EMA2-EMA3>2*Point && Ask<=(hi-MoveBack*Point))
                            {
                                ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"EMA position:",16385,0,Green);
                                if(ticket>0)
                                    {
                                        if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
                                            {
                                                Print("未结订单 BUY : ",OrderOpenPrice());
                                                chk=0;
                                            }
                                        else
                                            {
                                                Print("打开错误买单: ",GetLastError()); 
                                                return(0); 
                                            }
                                    }
                            }
                     return(0);    
                    }
            
            for(cnt=0;cnt<total;cnt++)
                {
                    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
                    if(OrderType()<=OP_SELL &&OrderSymbol()==Symbol()) 
                        {
                            if(OrderType()==OP_BUY)
                                {
                                    if(Bid>=(OrderOpenPrice()+Pip*Point))
                                        {
                                            chk=0;
                                            OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
                                            return(0);
                                        }
                                    if(Bid<=(OrderOpenPrice()-SL*Point))
                                        {
                                            chk=0;
                                            OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
                                            return(0);
                                        }
                                }
                            else
                                {
                                    if(Ask<=(OrderOpenPrice()-Pip*Point))
                                        {
                                            chk=0;
                                            OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
                                            return(0);
                                        }
                                    if(Ask>=(OrderOpenPrice()+SL*Point))
                                        {
                                            chk=0;
                                            OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
                                            return(0);
                                        }
                                }
                        }
                }
            return(0);        
        }
    }

© 著作权归作者所有

共有 人打赏支持
下一篇: MQL5教程
cuyi
粉丝 0
博文 57
码字总数 29599
作品 0
广州
程序员
私信 提问
外汇技术分析之——技术指标

        欧洲央行大楼   【干货】外汇技术分析之——技术指标:      (一)技术指标简介      技术指标的作用主要有两点:   1、通过分析技术指标可以在走势形态上没有明...

汇财AI人工智能
2017/09/18
0
0
量化交易——传统技术分析平滑异同移动平均线MACD的原理及实现

指数平滑异同移动平均线MACD MACD是股票交易中常见的一个技术分析工具,同时也是一个我认为分析可执行度高并且效果优秀的一种手段。其是于1970年代由Gerald Appel提出,它主要是利用了双指数...

happengft
2017/05/08
0
0
机器学习在量化投资中的应用:从技术分析谈起

前言:最近特别忙,写毕业论文,找工作,忙得不亦乐乎。硕士两年来做的一些工作,导师没有让我往毕业论文里面写,我感觉到,这两年的一些经验以及所思所想,可能没有办法写成正式的文章了,特...

Clever Liu
2015/09/02
0
0
基于遗传算法(GA)进化的小游戏

在这篇文章中,我们模拟了一个包含生物体和食物的环境,生物体为了生存必须尽可能多的消耗食物。在模拟环境中,生物体将由一个简单的、完全连接的神经网络来控制。神经网络的输入是一种标准化...

【方向】
2017/12/25
0
0
K线指标之MACD(趋向类指标)

移动平滑异同平均线(Moving Average Convergence Divergence,简称MACD指标)策略。MACD是查拉尔·阿佩尔(Geral Appel)于1979年提出的,由一快及一慢指数移动平均(EMA)之间的差计算出来。“...

三也视界
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

想问一下C++里queue要怎么遍历

如题,想知道怎么遍历<queue>对象的元素? 貌似不能遍历。要么全部pop push一遍,要么换个容器呗。 queue是先进后出的数据类型,只能不断读top()然后再pop()掉。故意把遍历操作隐藏掉了,...

shzwork
昨天
2
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
2
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0
【转】go get命令使用socket代理

由于某些不可描述的原因,国内使用go get命令安装某些包的时候会超时导致失败,比如net包、sys包、tools包等。第一种解决办法就是自己从git上下载后添加链接到GOPATH中,比如: 1234...

yiduwangkai
昨天
6
0
从上往下打印出二叉树的每个节点,同层节点从左至右打印。

//第一种做法 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList <Integer> li=new ArrayList<Integer>(); ArrayList <TreeN......

南桥北木
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部