我是编写mql4
代码的新手,如果在以下烛台图案出现时能获得一些绘制矩形的帮助,将不胜感激:
图。1:
Run code snippet
<blockquote class="imgur-embed-pub" lang="en" data-id="a/fRoPzsm"><a href="//imgur.com/a/fRoPzsm">Demand Zone 1</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)
图2:
Run code snippet
<blockquote class="imgur-embed-pub" lang="en" data-id="a/4E8KE1R" data-context="false"><a href="//imgur.com/a/4E8KE1R">Demand Zone 2</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)
和
图3:
Run code snippet
<blockquote class="imgur-embed-pub" lang="en" data-id="a/h6D6o6R"><a href="//imgur.com/a/h6D6o6R">Hidden Demand Zone</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)
和相应的供应区域,
并以指定的点数止损和止盈开立挂单。
请原谅我不直接包含图像。我没有足够的投票赞成这样做。
以下是链接图像中烛台图案的说明:
candlestick pattern
当出现至少两个或多个连续的看涨蜡烛(最后一个看涨蜡烛的高点为该时间段的高点),然后跟随一个或多个看跌蜡烛的高低比最后一个看涨蜡烛的低点时,将发生一般(需求区域) 。然后最后是形成新高的看涨蜡烛。矩形区域是需求区域,从最后一个看跌蜡烛的开盘价到最低价截取。
当一系列连续的看涨蜡烛的蜡烛的低位,低于前一根蜡烛以及其高位和其收盘价重合时,隐藏的需求区域将从看涨蜡烛的低位转向开盘。
此处提供针对需求区域和供应区域的完整说明。
我知道,bullish
和bearish
蜡烛可由下式确定
if ( ( Open[1] - Close[1] ) > 0)
{
// candle is bearish
} …
Run Code Online (Sandbox Code Playgroud) 在Java
语言中,可以使用try
-catch
机制。
它是否存在任何类似的行为 MQL4
?
此代码引发错误'array out of range
在Close[bar]
表达式中 ” ,我无法正确处理它。
任何帮助将不胜感激。
bool isBarClosed( int bar ) {
bool barClosed = true;
double closePrice = Close[bar];
int error = GetLastError();
if ( error == 4202 ) {
barClosed = false;
}
return barClosed;
}
Run Code Online (Sandbox Code Playgroud) 使用 MQL4 我在处理datetime
.
我想做的是datetime
按月或按年排列。
目前我就是这样做的。
datetime myDate;
myDate[0] = D'2010.01.01 00:00';
myDate[1] = D'2010.02.01 00:00';
myDate[2] = D'2010.03.01 00:00';
myDate[3] = D'2010.04.01 00:00';
.
.
Run Code Online (Sandbox Code Playgroud)
不过我想像下面这样做
myDate[0] = D'2010.01.01 00:00';
for (int i = 1;i < 6 ;i+=){
myDate[i] = myDate[i - 1] + 1year;
}
Run Code Online (Sandbox Code Playgroud)
如果是月份,
myDate[0] = D'2010.01.01 00:00';
for (int i = 1; i < 12 ; i++){
myDate[i] = myDate[i - 1] + 1month
}
Run Code Online (Sandbox Code Playgroud)
问:如何计算加1month
或1year
?
I am trying to create my own DLL with DEV-C++ IDE tool and trying to use it inside MT4 script. I tried to study the example file [MT4_HOME]\MQL4\Scripts\Examples\DLL\DLLSample.cpp available in any MT4 installation and I tried to follow the same logic with other script but without sucess. Below I am describing in great details steps i followed just to be clear. I would like to understand why following the described steps my own dll doesn't work.
System configuration
我正在为 backTest 制作一个 EA。
通常程序是这样工作的。
Ontick()
被调用直到某个时间段结束。OnDeinit()
OnTester()
叫做。但是现在我想停下来OnTick()
并转到2)。
像这样,
void OnTick()
{
if (cnt > 100) {OnTick();OnTester();//Finish program here}
}
Run Code Online (Sandbox Code Playgroud)
我想我可以停止OnInit()
(检查用户的初始设置等...)但是我可以停止 EA 吗OnTick()
???
总之,我想做的是,
OnTester()
从内部调用OnTick()
并完成程序。
我想从我的函数返回一个数组,我该怎么做?
看!
int GetOrdresVente(){
int ordrevente;
int Tabordresvente[];
for(int j = OrdersTotal() - 1; j >= 0 ; j--){
if(OrderSelect( j, SELECT_BY_POS ) == true){
if(OrderSymbol() == Symbol()){
if(OrderType() == OP_SELL ){
ordrevente = OrderTicket();
ArrayResize( Tabordresvente, ArraySize( Tabordresvente ) + 1);
Tabordresvente[ArrayResize( Tabordresvente, ArraySize( Tabordresvente ) - 1 )] = ordrevente;
}
}
}
}
return Tabordresvente;
}
Run Code Online (Sandbox Code Playgroud)
感谢您的回复!
我想在我的专家顾问 (EA) 中访问各种斐波那契水平,例如 23.6%、38.2%、50%、61.8% 和 100%。我如何在我的 EA 中定义这些,以便交易者可以通过输入选择它们?
我试过这个
input double Fibo=23.6;
Run Code Online (Sandbox Code Playgroud)
然而,这是常见的方法吗?是否可以将它们设置为预定义的?
感谢您的帮助!