Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql4-программа. Перечисление ENUM_TIMEFRAMES содержит значения стандартных таймфреймов, онлайновые графики финансовых...
#include <Trade\SymbolInfo.mqh>
CSymbolInfo m_symbol;
//===inputint ATRper=7; //ATR PeriodinputENUM_TIMEFRAMES ATRtimeframe=PERIOD_CURRENT;//«Time_Frame_ ATR»int handle_iCustom;
double atr_tp;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---if(!m_symbol.Name(Symbol())) // sets symbol namereturn(INIT_FAILED);
handle_iCustom=iATR(m_symbol.Name(),ATRtimeframe,ATRper);
//--- if the handle is not created if(handle_iCustom==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d",
m_symbol.Name(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+voidOnTick()
{
//---int Bar_=0;
atr_tp= iCustomGet(handle_iCustom ,0,Bar_);
atr_tp=NormalizeDouble(atr_tp,Digits())/_Point;
atr_tp=(int)atr_tp;
Comment("atr_",atr_tp);
}
//+------------------------------------------------------------------+double iCustomGet(int handle,constint buffer,constint index)
{
double Custom[1];
//--- reset error code ResetLastError();
//--- fill a part of the iCustom array with values from the indicator buffer that has 0 index if(CopyBuffer(handle,buffer,index,1,Custom)<0)
{
//--- if the copying fails, tell the error code PrintFormat("Failed to copy data from the iCustom indicator, error code %d",GetLastError());
//--- quit with zero result - it means that the indicator is considered as not calculated return(0.0);
}
return(Custom[0]);
}
///
它是有效的。))
多么聪明的论坛引擎...你自己提供了链接,那里有关于如何粘贴代码 的完整说明。
而且真的...为什么要努力做得更好...
计算一下这些函数中写了多少额外的代码,以及你通过调用这些自写的函数写了多少代码。
我努力在交易方面做得更好,我需要编码来向这个目标前进。
如果到了年底,差别将是0.1秒,那还有必要费心吗?
你能告诉我如何使这段代码不含函数并加快它的速度吗?
我正在努力在交易方面做得更好,我需要编码来实现这一目标。
如果到了年底,差别将是0.1秒,那还有必要费心吗?
你能告诉我如何使这段代码不含函数并加快它的速度吗?
这就是你的全部写法。只是它都被包裹在mql4之下。没有这样的包装,你就不能做到吗?
而这是
关于交易、自动交易系统和策略测试的论坛
初学者的常见问题 MQL5 MT5 MetaTrader 5
Aleksey Vyazmikin, 2018.05.24 12:30
都是通过零星的收集,但类似功能的主体我最初是从这里 拿的 ,真的不知道还剩下什么。
这只是安静的可怕....这到底是怎么回事?
这并不是一个真正的课程。对不起,不再批评了。
这就是你的全部写法。只是它都被包裹在mql4中。没有这样的包装,你就不能做到吗?
而这个...
是非常可怕的...这到底是怎么回事?
而一般来说,这不是这里的课程。对不起,不再批评了。
好吧,既然没有意愿为初学者展示如何做得更好......
我看不出有什么可怕的,在MT4中,时间段通常是由可被分钟除以的数字来指定的,这在MT5中是不符合逻辑的,但它可以使代码的移植更容易。
好吧,既然没有意愿为初学者展示最好的方法......
我看不出有什么可怕的,在MT4中,时间段经常用除以分钟的数字来表示,这在MT5中已经不符合逻辑了,但这样做更容易移植代码。
为什么让它 转换为分钟数,然后再放回去?
16408比PERIOD_D1更容易理解,49153比PERIOD_MN1更容易理解吗?
你好,在EA中,我想从图表的 高点时期 知道ATR的当前值。一个整数值。
错误在哪里?
你好,在EA中,我想从图表的 高点时期 知道ATR的当前值。一个整数值。
错误在哪里?
它说的是什么?它在说什么?
它说的是什么?他在说什么脏话呢?
不是的,是在撒谎。高位的指标显示 "8",但顾问在评论中说 "6"。
它不发誓,而是撒谎。高位上的指标显示为 "8",但在评论中,EA说 "6"。
我在一个5分钟的周期上运行了你的EA,周期ATR14,时间框架ATR-1小时。一切都显示得很均匀,无论是在评论中还是在图表上。
它也躺在我现在的上面,ATRtimeframe=PERIOD_CURRENT。
我认为这根本不是代码的问题。下面是我的PERIOD_CURRENT