使用mql4写ea,如何不使用任何指标,去判断趋势与横盘,反转,和回调
时间: 2024-03-11 18:44:06 浏览: 15
判断市场趋势与横盘、反转、回调的方法有很多,但不使用任何指标的话,可以考虑以下几个方面:
1.价格走势:通过观察价格的高低点、走势线、趋势线等形态,来判断市场是处于上涨、下跌还是横盘状态。
2.成交量:成交量是市场供求关系的体现,可以通过观察成交量的大小、涨跌幅与成交量的关系,来判断市场的趋势与反转。
3.时间周期:不同时间周期的走势有时会呈现出不同的趋势,可以通过同时观察不同时间周期的走势,来判断市场的趋势与横盘状态。
4.形态分析:通过对走势图形态的分析,如头肩顶、双底、三角形等,来判断市场的趋势与反转。
以上方法只是其中的几种,可以根据个人经验和喜好,结合多种方法来判断市场的趋势与反转。在编写EA时,可以将这些方法封装成一些函数或指令,以便使用。
相关问题
如何把指标嵌入到EA,不去调取指标,MQL4编程
在MQL4编程中,可以使用iCustom()函数将自定义指标嵌入到Expert Advisor中。iCustom()函数的语法如下:
```
int iCustom(string symbol, int timeframe, string name, ...);
```
其中,symbol和timeframe分别是要应用指标的交易品种和时间框架,name是指标文件名,可以是.mq4或.ex4文件。
在使用iCustom()函数时,需要先将指标文件放置在正确的文件夹中。对于.mq4文件,应该放置在MQL4\Indicators目录下,对于.ex4文件,应该放置在MQL4\Libraries目录下。
例如,如果要将Moving Average指标嵌入到EA中,可以使用以下代码:
```
double ma = iCustom(Symbol(), 0, "Moving Average", 12, 0, MODE_EMA, PRICE_CLOSE, 0);
```
该代码会计算当前交易品种的12周期EMA指标,并将结果存储在变量ma中。
需要注意的是,使用iCustom()函数时,需要按照指标参数的顺序传递参数。在上面的例子中,12是指标的期数,0是应用到的价格类型,MODE_EMA是指标类型(此处为EMA),PRICE_CLOSE是价格类型,0是应用的偏移量。
使用mql5语言,写一个能交易的均线策略
以下是一个简单的均线策略,使用MQL5语言编写:
```
// 定义交易参数
input double LotSize = 0.1; // 交易手数
input double StopLoss = 50; // 止损距离(点)
input double TakeProfit = 100; // 止盈距离(点)
// 定义均线参数
input int Period = 20; // 均线周期
input ENUM_MA_METHOD MaMethod = MODE_SMA; // 均线计算方法
// 定义全局变量
int Ticket = 0; // 订单编号
double Lots = 0; // 实际交易手数
// 初始化函数
void OnInit()
{
// 计算实际交易手数
Lots = NormalizeDouble(LotSize * MarketInfo(Symbol(), MODE_LOTSIZE), 2);
}
// 主函数
void OnTick()
{
// 计算均线值
double MaValue = iMA(Symbol(), 0, Period, 0, MaMethod, PRICE_CLOSE, 0);
// 如果当前价格高于均线,且没有持仓,则开多单
if (Close[0] > MaValue && !PositionSelect(Symbol()))
{
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Bid - StopLoss * Point, Bid + TakeProfit * Point, "Buy", 0, 0, Green);
}
// 如果当前价格低于均线,且持有多单,则平仓
if (Close[0] < MaValue && PositionSelect(Symbol()) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
{
Ticket = OrderClose(PositionGetInteger(POSITION_TICKET), Lots, Bid, 3, Red);
}
}
```
这个策略的基本思路是,在每个tick时计算均线值,如果当前价格高于均线且没有持仓,则开多单;如果当前价格低于均线且持有多单,则平仓。其中,交易参数可以通过外部输入进行设置,均线周期和计算方法也可以进行修改。注意,这只是一个简单的示例,实际使用时需要根据市场情况进行调整和优化。