漆学军:均线交叉,金叉做多,死叉做空的例子程序
《MT4EA编程速成教程》中第33页习题
第一题:将交易信号改成均线交叉,金叉做多,死叉做空。
金叉死叉,需要获取小均线两个点,大均线两个点,然后比较四个点的大小变化,就能判断金叉和死叉。
当黄色为小均线,红色为大均线 当 A>B 并且 C>D 就是金叉。
当黄色为大均线,红色为小均线 当 A>B 并且 C>D 就是死叉。
在之前一单一结的EA基础上,只需要修改signal()这个信号函数。
代码修改如下:
int signal(){int res=0;double smallma1=iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,1);double bigma1=iMA(NULL,0,26,0,MODE_SMA,PRICE_CLOSE,1);double smallma2=iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,2);double bigma2=iMA(NULL,0,26,0,MODE_SMA,PRICE_CLOSE,2);if(smallma1>bigma1 && smallma2<bigma2){res=1;}if(smallma1<bigma1 && smallma2>bigma2){res=-1;}return(res);}
完整代码如下:
//+------------------------------------------------------------------+
//| Test_EA_05_1.mq4 |
//| 云开 |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "http://www.forexmt4.cn"
#property link "http://www.forexmt4.cn"#property description "【漆天编程】 习题EA1"
#property description " "
#property description "这是一款测试EA,作者QQ:80364276"
#property description " "
#property description "发布时间:2021.10.26"
#property strict
#property icon "//Images//sea.ico"input double lots=0.1; //交易手数
input int SL=600; //止损点数
input int TP=200; //止盈点数//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit(){
//---
//---return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
//---}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick(){int buys=0; //多单持仓有几笔int sells=0; //空单持仓有几笔int signal=signal();for(int i=0; i<OrdersTotal(); i++){if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){if(OrderSymbol()==Symbol() && OrderMagicNumber()==16384 && OrderType()==OP_BUY){buys++;if(signal<0){bool res=OrderClose(OrderTicket(),OrderLots(),Bid,0);if(res){Print("订单平仓成功");}return;}if(OrderStopLoss()==0){bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-SL*Point,OrderOpenPrice()+TP*Point,0);if(res)Print("订单修改成功");}}if(OrderSymbol()==Symbol() && OrderMagicNumber()==16384 && OrderType()==OP_SELL){sells++;if(OrderStopLoss()==0){bool res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+SL*Point,OrderOpenPrice()-TP*Point,0);if(res)Print("订单修改成功");}if(signal>0){bool res=OrderClose(OrderTicket(),OrderLots(),Ask,0);if(res){Print("订单平仓成功");}return;}}}}
//---if(signal>0 && buys==0){int ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,0,"My buy order",16384,0,clrGreen);if(ticket<0){Print("OrderSend failed with error #",GetLastError());}else{Print("OrderSend placed successfully");}}if(signal<0 && sells==0){int ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,0,"My sell order",16384,0,clrRed);if(ticket<0){Print("OrderSend failed with error #",GetLastError());}else{Print("OrderSend placed successfully");}}}
//+------------------------------------------------------------------+
int signal(){int res=0;double smallma1=iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,1);double bigma1=iMA(NULL,0,26,0,MODE_SMA,PRICE_CLOSE,1);double smallma2=iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,2);double bigma2=iMA(NULL,0,26,0,MODE_SMA,PRICE_CLOSE,2);if(smallma1>bigma1 && smallma2<bigma2){res=1;}if(smallma1<bigma1 && smallma2>bigma2){res=-1;}return(res);}
//+------------------------------------------------------------------+
漆学军:均线交叉,金叉做多,死叉做空的例子程序相关推荐
- 漆学军:MACD交叉,金叉做多,死叉做空的例子程序
<MT4EA编程速成教程>中第33页习题: 第二题:将交易信号改成MACD交叉,金叉做多,死叉做空. 这道题的重点和难点就是获取MACD的指标值,MACD和之前的抛物线指标或者均线指标不一 ...
- Python量化编程如何判断均线数据是金叉还是死叉?-股市数据均线策略编程分析
Python量化编程如何判断均线数据是金叉还是死叉?-股市数据均线策略编程分析 以平安银行的股票数据为例进行分析 1.使用tushare获取股市数据,直接上代码: import pandas as p ...
- 金叉和死叉看哪几条线?股票macd金叉和死叉怎么看?
资本市场上,每天都在演绎着转瞬即逝的遗憾,和曙光来临的场景.怎么更好的把握住机遇,人工智能和<股市三大猜想>指出人类在金融领域探索的脚步从未停止过.资本追逐利益是投资者的责任与使命,是金融 ...
- macd金叉kdj死叉的准确率_MACD金叉不涨又死叉
小王根据<乔博士:MACD指标详解>学习到的内容,于是QR社区写下心得分享给大家,MACD金叉KDJ死叉 以下QR社区告诉我们MACD金叉KDJ死叉的解释: MACD指标(Moving A ...
- macd金叉公式成功率_MACD金叉kdj死叉和20日线可靠吗
全球金融市场中,投资者使用各式各样的方法进行投资交易,有价值投资者,有技术分析投资者,那么孰高孰低呢?最近笔者在QR社区学习了<乔博士:MACD指标详解>就给大家讲的就是如何拥有一套自己的 ...
- 什么叫金叉和死叉?什么叫macd二次死叉?
根据QR社区的统计显示,现在股票市场上将近有90%的松散客户都是处于亏损状态,那么原因是什么呢?因为他们都是用散户思维在炒股.所以要是想改变现在的基本状况,主要还是要改变投资者的思维模式. 一.什么叫 ...
- 金融量化-金叉和死叉
金融量化分析-金叉和死叉 ```python import numpy as np import pandas as pd import matplotlib.pyplot as plt import ...
- (多头、空头、金叉、死叉、卖出信号、买出信号)的python处理
1.指标概念 均值性指标:以平均数据作为参考的指标 随机性指标:以最高价最低价等为参考的指标 2.多头.空头.金叉.死叉.卖出信号.买出信号 多头:短期均线在长期均线上方 空头:短期均线在长期均线下方 ...
- 股票中的KD指标金叉和死叉
股票中的KD指标金叉和死叉 -[ ] Time:2007-01-23 Tag: 投资理财 1.一般而言, D线由下转上为买入信号,由上转下为卖出信号. 2.KD都在0-100的区间内波动,50为 ...
- 金融分析之基本ma5 及金叉、死叉
1 import pandas as pd 2 import numpy as np 3 import matplotlib.pylab as plt 4 5 res=pd.read_csv(&quo ...
最新文章
- 智源大会“人工智能伦理、治理与可持续发展论坛”超5000人线上参会,专家敦促全球多边协作...
- 用字符数组存放一个字符串,然后输出该字符串
- hashmap 存的是对象的引用地址_Java互联网架构-面试虐我千百遍HashMap源码真讨厌...
- 老鼠怕猫是鼻子决定的?!
- java微信学习 接入
- 五步git操作搞定Github中fork的项目与原作者同步
- json 例子_json-简单的例子
- ConstraintLayout使用汇总
- 如何成为嵌入式软件工程师_成为高效软件工程师的三个关键
- JavaWeb 学习路线
- linux 批量更改三四级目录 扩展名,Linux批量更改文件后缀名
- 深蓝学院-多传感器融合定位-第3章作业
- 《空间分析》——思维导图
- 亚马逊买家号注册流程
- vue 使用腾讯IM即时通信
- 西门子数控机床如何用FTP进行程序传输
- busybox文件系统与简单驱动学习(4)-RT3070无线网卡STA模式配置
- CE认证和CCC认证区别?
- linux 编译 suitesparse,Ubuntu下编译SuiteSparse-4.4.1和METIS-4.0.3
- 【读书笔记】万物原理——打开客观世界与主观情感的大门
热门文章
- Expected Array got Object
- 随机存取存储器(RAM)的最大特点是什么?
- ThingJS 3年进化史:为40万物联网开发者打造一站式数字孪生服务平台
- 全微分里dxy是怎么化成xdy+ydx
- 修改mac地址导致计算机无法上网,如何解决Win7计算机上无法修改MAC地址的问题...
- 联想电脑尺寸在哪里看_笔记本型号在哪里看 怎么看笔记本屏幕大小
- Linux下ps -ef和ps aux
- 圆排列公式推导_数学广角早在公元三世纪,我国数学家刘徽为推导圆的面积公式而发明了 爱问知识人...
- 苹果cms模板_万词无限模板站群黑帽SEO利器
- 大学竞赛经历分享之微信小程序应用开发赛(1)