//判断如下
//仅举例说明买入情形 卖出情形自己做
if (GetLastTrade(OP_BUY) < iTime(Symbol(), PERIOD_M15, 0))
{
//不在当前15分钟的K柱之内 可以下单
}
else
{
//不可下单
}
非常感谢seanwood大侠!
我大概看懂了您的意思,不知道我理解的对不对,
我把datetime GetLastTrade(int type) 这个函数的这一段,放在主程序的最后面,int start() {定义变量,下单,平单判断等; 之后是函数 datetime GetLastTrade(int type) }, 把买入情形/卖出情形的加在下单的判断里。
可是,返回了以下一些错误:
‘{’ function definition unexpected
'type' - variable not defined
'lastTrade' - variable not defined
'type' - variable not defined
'}' - unbalanced parentheses
我的程序,在加进之前,编译无错误。 怀疑放的位置不对,试着换了,仍不可以。。 本人愚钝,望再赐教,非常感谢!
static datetime openTime;
if(Time[0] != openTime)
{
//不在此柱内
......
openTime = Time[0];
}
else
{
//在同一柱内
}
错了
MQL是面向过程的语言,不能在一个函数内部声明另一个函数
你必须将 GetLastTrade这一段单独声明在start init等函数之外
顺便说一句dmgy的方法不可取 理由是判断不正确且依赖于图表的周期
正确的用法是这样的
int start()
{
//.............你自己的代码
//然后这里是判断代码
if (GetLastTrade(OP_BUY) < iTime(Symbol(), PERIOD_M15, 0))
{
//不在当前15分钟的K柱之内 可以下单
}
else
{
//不可下单
}
}
//然后这里是GetLastTrade函数的声明
datetime GetLastTrade(int type)
{
//函数内容................
}
非常感谢seanwood! 已经好用了!
我接触mql4的时间还比较短,以前有点编程的基础,但对mql4还不熟悉,还需要多努力学习练习,希望有机会跟seanwood多交流!
dmgy的我还没有试验,在这里也谢谢了~
最近在学习,练习编程,但是做的程序出现个问题,个别时候在一个k线内会反复下单-平单-再下单-再平单。
对于循环,有点不明白,比如一根15分钟的k柱,循环的tick会走多少次?。。
如何控制一根k线内只下一次单?
想到用数组控制,
int a;
double order[];
a=Bars;
order[a]=0.0;
之后判断是否满足开仓条件(开仓条件增加一条,order[a]==0),如果满足,开仓,并且,
order[a]=1
可是,还是不好用,很困惑,望高手指点!先谢谢了!