Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit(void)
{
//--- prepare trade class to control positions if hedging mode is active
ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
ExtTrade.SetExpertMagicNumber(MA_MAGIC);
ExtTrade.SetMarginMode();
ExtTrade.SetTypeFillingBySymbol(Symbol());
//--- Moving Average indicator
ExtHandle=iMA(_Symbol,_Period,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE);
if(ExtHandle==INVALID_HANDLE)
{
printf("Error creating MA indicator");
return(INIT_FAILED);
}//--- okreturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
在这里,我们对它们进行设置,使指标根据信号正确打开。
//+------------------------------------------------------------------+//| Check for open position conditions |//+------------------------------------------------------------------+void CheckForOpen(void)
{
MqlRates rt[2];
//--- go trading only for first ticks of new barif(CopyRates(_Symbol,_Period,0,2,rt)!=2)
{
Print("CopyRates of ",_Symbol," failed, no history");
return;
}
if(rt[1].tick_volume>1)
return;
//--- get current Moving Average double ma[1];
if(CopyBuffer(ExtHandle,0,0,1,ma)!=1)
{
Print("CopyBuffer from iMA failed, no data");
return;
}//--- check signalsENUM_ORDER_TYPE signal=WRONG_VALUE;
if(rt[0].open>ma[0] && rt[0].close<ma[0])
signal=ORDER_TYPE_SELL; // sell conditionselse
{
if(rt[0].open<ma[0] && rt[0].close>ma[0])
signal=ORDER_TYPE_BUY; // buy conditions
}
//--- additional checkingif(signal!=WRONG_VALUE)
{
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100)
ExtTrade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
0,0);
}
//---
}
//+------------------------------------------------------------------+
大家好!
我已经开始学习mql5。我首先研究了订单是如何开启的。我已经了解到,打开订单的代码写在一个单独的include文件中。我现在已经掌握了这个代码和它最后的交易变体。我很惊讶,mql4 中的开单比 mql5 中的开单要容易和简单得多。
我想问的是,我是否确定我已经有打开订单的代码的文件,我不需要写这个代码。如果这样的文件在某处可用,那么我只需要将其连接到我的EA,并设置我需要的订单参数值?如果有这样的文件,应该在哪里和如何找到它,以及它的名称是什么。
谢谢你。
如果我没有理解错的话,是#include <Trade\Trade.mqh>。
如果我没有理解错的话,是#include <Trade\Trade.mqh>。
非常感谢您提供的宝贵信息。
我是否正确地理解为我不必在任何地方寻找这些文件,而只需在代码的正确位置写上#include <Trade\Trade.mqh> ,这个文件就会自动加入我的专家顾问,并在需要时访问它?
非常感谢您提供的宝贵信息。
我是否正确理解,我不需要在任何地方搜索这些文件,只需要在代码的正确位置写上#include <Trade\Trade.mqh> ,这个文件就会自动加入我的EA,EA会在需要时访问它?
是的!你不必去寻找它,它已经在那里了。
你可以看一下代码文件(Moving Averages.mq5或MACD Sample.mq5),从终端。
是的!你不必去寻找它,它已经在那里了。
非常感谢您提供的宝贵信息。
如果我没有理解错的话,你发给我的文件叫做CLASS,这个文件是用来开立一个订单的。我认为有很多的CLASSES,每一个都有自己的目的,例如关闭订单,修改订单,输出一些信息,等等。
问题 我在哪里可以找到所有课程的清单及其详细说明?
再次感谢您的帮助。
非常感谢您提供的宝贵信息。
如果我没有理解错的话,你发给我的文件叫做CLASS,这个文件是用来打开一个订单的。我认为有很多的CLASSES,每个CLASSES都有其特定的目的,例如,关闭一个订单,修改一个订单,输出一些信息,等等。
问:我在哪里可以找到所有课程的清单及其详细说明?
再次感谢您的帮助。
非常感谢您提供的宝贵信息。我现在将开始消化它,即就我的精神能力而言,同化.....。
大家好!
我已经开始学习mql5。我首先研究了订单是如何开启的。我已经了解到,打开订单的代码写在一个单独的include文件中。我现在已经掌握了这个代码和它最后的交易变体。我很惊讶,mql4 中的开单比 mql5 中的开单要容易和简单得多。
我想问的是,我是否确定我已经有打开订单的代码的文件,我不需要写这个代码。如果这样的文件在某处可用,那么我只需要将其连接到我的EA,并设置我需要的订单参数值?如果有这样的文件,应该在哪里和如何找到它,以及它的名称是什么。
谢谢你。
对我来说,我有一个不同的方法来写一个EA。我只是需要为自己纠正一下。
-为什么要重新发明车轮,因为它已经被创造出来了。
----------------------------------------------------------------------
这就是我们接过指标的地方
在这里,我们对它们进行设置,使指标根据信号正确打开。
为了帮助我更好地了解MQL5,如果你能把这个简单的代码从MQL4翻译成MQL5 代码,我将非常感激
谢谢你的帮助。
numPosOr= 4;
numStepCount= 1。
iK = (numPosOr - numStepCount) / numPosOr;
为什么这种计算方式使iK=0?
numPosOr= 4;
numStepCount= 1。
iK = (numPosOr - numStepCount) / numPosOr;
为什么这种计算方式使iK=0?
请给我整个代码