//+------------------------------------------------------------------+//| OnTick function |//+------------------------------------------------------------------+voidOnTick(){
staticdatetime timeCur; datetime timePre = timeCur; timeCur=Time[0];
bool isNewBar = timeCur != timePre;
if(isNewBar){
return; // Once per bar
}
return; // every tick
}
如果是新条形,你就返回,如果不是,你也返回,所以你总是不做任何事情就返回。
当你找到一个新的条形图时,你需要重置这个值。
voidOnTick(){
datetime timeCur=Time[0];
staticdatetime timePre = timeCur;
bool isNewBar = timeCur != timePre;
if(isNewBar){
timePre=timeCur;
//Do what you want at each new bar // Once per bar
}
//Do other stuff that you may need to do every tickreturn; // every tick
}
voidOnTick(){
datetime timeCur=Time[0];
staticdatetime timePre = timeCur;
bool isNewBar = timeCur != timePre;
if(isNewBar){
timePre=timeCur;
//Do what you want at each new bar // Once per bar
start();
}
//Do other stuff that you may need to do every tickreturn; // every tick
}
另外,止损单上的反向交易也不起作用。
你已经被告知这是不可靠的。
这没有什么作用
如果是新条形,你就返回,如果不是,你也返回,所以你总是不做任何事情就返回。
当你找到一个新的条形图时,你需要重置这个值。
你的检查 最后一笔订单的代码假定订单历史中的最高指数是最近关闭的交易。我不确定这是否总是真的。
好的,我应用了这个代码......但是当我试图在每个新的条形图上调用开始函数 时......它不接受任何订单。
即使我在新条形区域内添加buyCall和sellcall函数...以及在tick区域内添加start()...它也会创建多个订单。
除了这个启动函数外......我还有以下额外的函数......在主函数中被调用。
int split(double x)
void BuyCall(double BC)
void SellCall(double SC)
最后是 void onTick 函数,我很困惑......如何以一种方式设置它......使挂单 不会逐点重复。
...每小时只有一个挂单序列...此外,它将检查是否有挂单被止损。
...然后它将在相反的方向打开另一个交易...但每小时只有一个序列。
请帮助我,我只是一次又一次地卡在同一个地方......但显然我想学习......这样我以后就不需要再问愚蠢的问题了。
...想清楚我的概念...:(
谢谢你的时间。