if(sign0==1) //проверка начинаертя только после появления 1
{
t=TimeCurrent(); //фиксируем время//в цикле от t до t+t1 через каждые дельта секундwhile(t<t+t1) //t1 отрезок времени в перед за которое будем проверять if(sign0==1)
{
if(sign0==1) //еще паз проверка наличия 1
sign1=1; //новой переменой присваиваем 1else
{sign1=0;break;} // если нет присваиваем 0 и заканчиваем цикл
t=t+delta; //проверяем через каждые дельта секунд
}
if(sign1==1) op="BUY";
return;
}
void CheckForOpen()
{
int res;
datetime t;
int sign=0;
//---- go trading only for first tiks of new bardouble tr0=iCustom(NULL,0,"trd",0,0);
double tr1=iCustom(NULL,0,"trd",1,0);
//---- sell conditionsif(tr1==1)
{
t=TimeCurrent();
while(t<t+tim)
{
if(tr1==1)
sign=-1;
else
{sign=0;break;}
t=t+delta;
}
if(sign==-1)
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MAGICMA,0,Red);
return;
}
可能是有用的!!!。尽量以一个价格为基础:说是投标。OP_SELLSTOP 的开盘价将是Bid ,而OP_BUYSTOP 的开盘价是Bid+87*Point (或任何你需要的)。
现在有一个魔术师,参数被设定为
请帮助。也许有人知道如何在代码中实现一个函数,将历史上的倒数第二个值与最后一个值(我们说的是平仓)进行比较,不管是什么值(例如OrderCloseTime()),如果它们不同(在这种情况下,倒数第二个值小于最后一个值)--做一个BLA-BLA-BLA。如果可能的话,请完善我的代码,如果方向不对,也可以自己写。
double C_T_L_C_P() {
datetime t;
double r=0;
int i, k=OrdersHistoryTotal(), q=0;
if (q==0)
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (t<OrderCloseTime()) {r=OrderCloseTime();}
}}}
return (r);}
提前感谢!!!。
帮助检查。
在循环中出现第一个单元后,检查这个单元是否能保持t+t1时间(每隔delta秒检查一次)。如果它保持不变,我们就买下它,如果在某个时候它没有保持不变,我们就退出循环。换句话说,如果每一个delta间隔都被检查过,并且一直是1,那么这个信号就是有效的。
我的想法正确吗?
帮助检查。
在循环中出现第一个单元后,检查这个单元是否能保持t+t1时间(每隔delta秒检查一次)。如果它保持不变,那么我们就买入,如果在某个时刻它没有保持不变,那么我们就退出循环。
我想得对吗?
结果是一个无限的while循环(t总是<t+t1,只有当t1=0时)。在循环中sign1总是=1
结果是一个无限的while循环(t总是<t+t1,只有当t1=0时)。在循环中sign1总是=1
如何修复这个错误?
如何纠正一个错误?
要修复一个错误,你必须详细说明算法(不是代码,而是算法)。然后将代码叠加在算法上
为了纠正错误,必须详细说明该算法
收到一个二进制信号0或1。如果收到1,那么从这一刻起,我们开始检查它是否能保持10分钟(600秒),每60秒检查一次。如果10分钟内都有一个1,那么就买入,如果至少有一次没有1,那么就完成检查,并认为没有信号可以打开。
收到一个二进制信号0或1。如果收到1,那么从这一刻起,我们开始检查它是否能保持10分钟(600秒),每60秒检查一次。如果所有的10分钟都是1--买入,如果至少有一次不是1,那么完成检查并认为没有开盘的信号。
代码中不清楚离散信号sign0如何变化。在所提出的代码中,信号并没有改变。有一个不成功的尝试,就是与改变了的T的工作。