任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 182

 

你好。

有一个函数NewBar(sy, TF)。看起来好像是一个新的酒吧 开张了。我需要在小时图上得到一个关于新柱状体出现的信号,滞后时间为5分钟。我想在0.05、1.05、2.05、...........、10.05、11.05等位置获得信号。


如何才能做到这一点?也许功能本身可以以某种方式进行重新设计?

 
hoz:

好吧,我删除了#property库,但 没有警告,同时也没有启动功能......。

关于什么的警告?
 
Vinin:

关于什么的警告?


那么...在这里。

sergeev:
如果你不想看到关于缺少启动的警告,你需要它。

 
gince:

你好。

有一个函数NewBar(sy, TF)。它检查是否有一个新的酒吧被打开。我需要在小时图上得到一个关于新柱状体出现的信号,滞后时间为5分钟。我想在0.05、1.05、2.05、...........、10.05、11.05等位置获得信号。


如何才能做到这一点?是否有可能修改该函数本身?


你在全球范围内宣布它。

datetime = bdt_lastBarTime;

IN INIT:

bdt_lastBarTime = 0;

在开始的时候。

if (g_lastBarTime == Time[0])         // На текущем баре все необходимые действия..
       return (0);                    // ..уже были выполнены

// если ...
//.. бар новый...
//.. делаем то..
//.. что нужно выполнить на очередном..
//.. новом баре

g_lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                       // .. успешно выполнены

你可以用iTime() 代替Time[0];来获取当前时间框架以外的新条

 
hoz:


你在全球范围内宣布它。

INIT。

在开始的时候。

你可以用iTime() 代替Time[0];来获取当前时间框架以外的新条形


唯一的问题是。变量名称不匹配。哎哟,哎哟。这要么是不注意,要么是习惯。
 
Vinin:

除了这里的问题。变量名称不匹配。哦,亲爱的。不是不注意就是习惯

这就是不专心。纠正。

你在全球范围内声明。

datetime = bdt_lastBarTime;

IN INIT:

bdt_lastBarTime = 0;

在开始的时候。

if (bdt_lastBarTime == Time[0])         // На текущем баре все необходимые действия..
       return (0);                    // ..уже были выполнены

// если ...
//.. бар новый...
//.. делаем то..
//.. что нужно выполнить на очередном..
//.. новом баре

bdt_lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                       // .. успешно выполнены

你可以用iTime() 代替Time[0];来获取当前时间框架以外的新条

 

一目了然,只是专门针对这项任务。

bool NewBar05()
{
static bool newbar;
if (Minute()==5 && !newbar) 
   {
   newbar=true;
   return true;
   } 
if (Minute()>5 && newbar)  newbar=false;
   return  false;
}
    
 
xxxKillxxx:

同志,再次原谅我,但我有一个问题....我设法检查了所有区块的关闭,没有任何错误或警告,我没有得到任何语法,但当我启动我的EA时,我没有得到任何信号,我的交易不会像预期那样关闭。问题是,我不能把EA的代码,解决这个问题很需要,如果你不介意再花一次你宝贵的时间在我身上,请告诉我有什么选择可以解决这个问题,如果这很重要,我只能说这个EA是在forex generator 4创建的。

我想请你解释一下原因(最好是在你的手指上,舌灿莲花,因为我只做这种编程)提前感谢。


我的代码或你的专家顾问的部分代码关闭指定的利润为0.1%及以上。在外汇生成器4中,你是否能够做一些事情,使股本高于余额?
 
Roger:

一目了然,就是专门为这项任务而设。


感谢大家的帮助。

问题如下。

<有一个函数NewBar(sy, TF)。它检查是否有一个新的酒吧被打开。我需要在小时图上得到一个关于新柱状体出现的信号,滞后时间为5分钟。也就是说,我想在0.05、1.05、2.05、...........、10.05、11.05等位置获得一个信号。>

为了澄清这个问题。该函数应每小时返回真,但延迟5分钟。也就是说,当1.05条的形成结束,2.05条出现时,当后者出现时,该函数返回真。当条形图出现在1.10、2.10等位置时,该函数返回真。

在图片中,黄线显示下一个条形图是真实的。

根据你的提示,我试着这样做,但没有用。

bool isNewBar5 ()
{

    static int   LastBar = 0; 
    datetime      curbar = iTime (Symbol(), 60, 0) +300; 
    int                h = Hour();
    if (LastBar != curbar && h == h + 1 && Minute() == 5)
    {
        LastBar = curbar;
        return (true);
    }
    else
    {return (false);}
}
 
gince:

你好。

函数NewBar(sy, TF)是可用的。它检查是否有一个新的酒吧开业。我需要在5分钟滞后的小时图上获得一个新条形的信号。我想在0.05、1.05、2.05、...........、10.05、11.05等位置获得信号。


如何才能做到这一点?也许函数本身可以被重写?


int bt=((TimeCurrent()-5*60)/3600)*3600;

bt的值将在每小时的5分钟内变化。可以不在最后乘以3600,它将成为从纪元开始的条形数字,这就足以定义一个新的条形