MQ5是一个内置的编程语言的交易策略,这种语言是 根据他们的在线交易平台建立长期的经验。使用这种语言,可以创建自己的专家顾问,使交易管理自动化,是完全可以为实现自己的交易策略合适,此外,使用MQL5可以创建自己的技术指标(自定义指标),脚本和库。
结构体struct,与C/C++语言相同。
#include命令,可以放置到程序的任意部分,但是通常所有文件的源代码被统一放置。
代码案例1
#property copyright "佚名金人"
#property link ""
#property version "1.00"
#property strict
//自定义结构体类型
struct KLine
{
// 当前时间
datetime current_time;
// 交易品种
string symbol;
// 周期
int period;
//向后偏移量
int shift;
// K线开盘时间
datetime kline_time;
// K线开盘价
double open_price;
// K线最高价
double high_price;
// K线最低价
double low_price;
// K线最收盘价
double close_price;
// 报价量
long volume;
// 图的数量
int bars;
// K线类型
int kline_type;
string kline_type_info;
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
// 交易品种
const string symbol = "GOLD";
// 周期(1小时)
const int period = 60;
//后偏移量
const int shift = 0;
KLine kLine60 = klinInfo(symbol,period,shift);
Alert("1小时K线的类型为:" + kLine60.kline_type_info);
Alert("1小时K线的收盘价:" + kLine60.close_price);
KLine kLine30 = klinInfo(symbol,30,shift);
Alert("30分K线的类型为:" + kLine30.kline_type_info);
Alert("30分K线的收盘价:" + kLine30.close_price);
KLine kLine15 = klinInfo(symbol,15,shift);
Alert("15分K线的类型为:" + kLine15.kline_type_info);
Alert("15分K线的收盘价:" + kLine15.close_price);
KLine kLine5 = klinInfo(symbol,5,shift);
Alert("5分K线的类型为:" + kLine5.kline_type_info);
Alert("5分K线的收盘价:" + kLine5.close_price);
KLine kLine1_0 = klinInfo(symbol,1,shift);
Alert("1分K线的类型为:" + kLine1_0.kline_type_info);
Alert("1分K线的收盘价:" + kLine1_0.close_price);
KLine kLine1_1 = klinInfo(symbol,1,1);
Alert("1分K线的类型为:" + kLine1_1.kline_type_info);
Alert("1分K线的收盘价:" + kLine1_1.close_price);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| 自定义函数 |
//+------------------------------------------------------------------+
KLine klinInfo(string symbol,int period,int shift)
{
KLine kLine;
kLine.symbol = symbol;
kLine.period = period;
kLine.shift = shift;
// K线图开盘时间
kLine.kline_time = iTime(symbol,period,shift);
// K线图的开盘价
kLine.open_price = iOpen(symbol,period,shift);
// K线图的最高价
kLine.high_price = iHigh(symbol,period,shift);
// K线图的最低价
kLine.low_price = iLow(symbol,period,shift);
// K线图的收盘价
kLine.close_price = iClose(symbol,period,shift);
// K线图的报价量
kLine.volume= iVolume(symbol,period,shift);
// K线图的数量
kLine.bars = iBars(symbol,period);
// K线图的类型
if(kLine.open_price > kLine.close_price)
{
// K线为阴线
kLine.kline_type = -1;
kLine.kline_type_info = "阴线";
}
else
if(kLine.open_price < kLine.close_price)
{
// K线为阳线
kLine.kline_type = 1;
kLine.kline_type_info = "阳线";
}
else
{
// K线为十字星
kLine.kline_type = 0;
kLine.kline_type_info = "同价线";
}
return kLine;
}
//+------------------------------------------------------------------+
代码案例2:
#property copyright "佚名金人"
#property link "https://www.toutiao.com/c/user/token/MS4wLjABAAAAtqGTdo-MM3OlPMycEg8ottlKM0vhCTZxwSLFuTZBvvPqYy4yEUrp2j2aNFywqA5u"
#property version "1.00"
#property strict
#include "demo/KLine.mqh"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
// 交易品种
const string symbol = "GOLD";
// 周期(1小时)
const int period = 60;
//后偏移量
const int shift = 0;
KLine kLine60 = klinInfo(symbol,period,shift);
Alert("1小时K线的类型为:" + kLine60.kline_type_info);
Alert("1小时K线的收盘价:" + kLine60.close_price);
KLine kLine30 = klinInfo(symbol,30,shift);
Alert("30分K线的类型为:" + kLine30.kline_type_info);
Alert("30分K线的收盘价:" + kLine30.close_price);
KLine kLine15 = klinInfo(symbol,15,shift);
Alert("15分K线的类型为:" + kLine15.kline_type_info);
Alert("15分K线的收盘价:" + kLine15.close_price);
KLine kLine5 = klinInfo(symbol,5,shift);
Alert("5分K线的类型为:" + kLine5.kline_type_info);
Alert("5分K线的收盘价:" + kLine5.close_price);
KLine kLine1_0 = klinInfo(symbol,1,shift);
Alert("1分K线的类型为:" + kLine1_0.kline_type_info);
Alert("1分K线的收盘价:" + kLine1_0.close_price);
KLine kLine1_1 = klinInfo(symbol,1,1);
Alert("1分K线的类型为:" + kLine1_1.kline_type_info);
Alert("1分K线的收盘价:" + kLine1_1.close_price);
}
//+------------------------------------------------------------------+demo/KLine.mqh
#property copyright "佚名金人"
#property link ""
#property strict
//自定义结构体类型
struct KLine
{
// 当前时间
datetime current_time;
// 交易品种
string symbol;
// 周期
int period;
//向后偏移量
int shift;
// K线开盘时间
datetime kline_time;
// K线开盘价
double open_price;
// K线最高价
double high_price;
// K线最低价
double low_price;
// K线最收盘价
double close_price;
// 报价量
long volume;
// 图的数量
int bars;
// K线类型
int kline_type;
string kline_type_info;
};
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
KLine klinInfo(string symbol,int period,int shift)
{
KLine kLine;
kLine.symbol = symbol;
kLine.period = period;
kLine.shift = shift;
// K线图开盘时间
kLine.kline_time = iTime(symbol,period,shift);
// K线图的开盘价
kLine.open_price = iOpen(symbol,period,shift);
// K线图的最高价
kLine.high_price = iHigh(symbol,period,shift);
// K线图的最低价
kLine.low_price = iLow(symbol,period,shift);
// K线图的收盘价
kLine.close_price = iClose(symbol,period,shift);
// K线图的报价量
kLine.volume= iVolume(symbol,period,shift);
// K线图的数量
kLine.bars = iBars(symbol,period);
// K线图的类型
if(kLine.open_price > kLine.close_price)
{
// K线为阴线
kLine.kline_type = -1;
kLine.kline_type_info = "阴线";
}
else
if(kLine.open_price < kLine.close_price)
{
// K线为阳线
kLine.kline_type = 1;
kLine.kline_type_info = "阳线";
}
else
{
// K线为十字星
kLine.kline_type = 0;
kLine.kline_type_info = "同价线";
}
return kLine;
}
//+------------------------------------------------------------------+ | 留言与评论(共有 0 条评论) “” |