给MQL专家的一个问题 - 页 3

 
谢谢你,granit77
 
granit77:

是的,有点像这样,如果你考虑到指标名称是hilo.mq4。

extern int iR=3;
extern int SignalBar=1;
//.......
//---получение значения  HighBuffer 
double buy =  iCustom( NULL,0, "hilo",
                      iR,
                      0, // № буффера
                      SignalBar ); // № бара    
 
//---получение значения  LowBuffer
double sell =  iCustom( NULL,0, "hilo",
                      iR,
                      1, // № буффера
                      SignalBar ); // № бара

小问题。指标上的顾问工作。但....只有在实施空头交易的情况下!

即在缓冲区编号=1时,在零点和第一条上的数值。

if  (   (sell_0>Bid)  &&   (sell_1<=Bid))

出售的条件是完美无缺地工作。

但专家顾问并不想买!我不明白什么是错的!我想我已经正确地设置了条件。缓冲区数量=0。

(  (buy0>=Ask)  &&      (buy1<Ask)  )

不买!或者它买得非常少,而且是从 "光 "中买的!

虽然视觉模式图表上的指标 线条似乎是正确建立的!但这并不意味着它是正确的。


这里会有什么问题呢?

 
rid:
granit77:

是的,有点像这样,如果你考虑到指标名称是hilo.mq4。

extern int iR=3;
extern int SignalBar=1;
//.......
//---получение значения  HighBuffer 
double buy =  iCustom( NULL,0, "hilo",
                      iR,
                      0, // № буффера
                      SignalBar ); // № бара    
 
//---получение значения  LowBuffer
double sell =  iCustom( NULL,0, "hilo",
                      iR,
                      1, // № буффера
                      SignalBar ); // № бара

小问题。指标上的顾问工作。但....只有在实施空头交易的情况下!

即在缓冲区编号=1时,在零点和第一条上的数值。

if  (   (sell_0>Bid)  &&   (sell_1<=Bid))

出售的条件是完美无缺地工作。

但专家顾问并不想买!我不明白什么是错的!我想我已经正确地设置了条件。缓冲区数量=0。

(  (buy0>=Ask)  &&      (buy1<Ask)  )

不买!或者它买得非常少,而且是从 "光 "中买的!

虽然视觉模式图表上的指标线条似乎是正确建立的!但这并不意味着它是正确的。


这里可能有什么问题?

我对这个问题也很感兴趣))。

 

在使用自定义指标时,我注意到了这一点。


// так РАБОТАЕТ !!!
int FATLsB=iCustom(NULL,0,"FATLs",0,0);
int FATLsS=iCustom(NULL,0,"FATLs",1,0);

// а вот так НЕТ ...
double FATLsB=iCustom(NULL,0,"FATLs",0,0);
double FATLsS=iCustom(NULL,0,"FATLs",1,0);


// если потом в коде есть сранвнение с 0 или 1, например
if (FATLsB==1) {CloseSell(); SetBuy(); }
 
kombat:

在使用自定义指标时,我注意到了这一点。


// так РАБОТАЕТ !!!
int FATLsB=iCustom(NULL,0,"FATLs",0,0);
int FATLsS=iCustom(NULL,0,"FATLs",1,0);

// а вот так НЕТ ...
double FATLsB=iCustom(NULL,0,"FATLs",0,0);
double FATLsS=iCustom(NULL,0,"FATLs",1,0);


// если потом в коде есть сранвнение с 0 или 1, например
if (FATLsB==1) {CloseSell(); SetBuy(); }

在第一种情况下,在赋值操作 之前有一个向目标int类型的转换。因此,比较条件的工作是正确的。

对于第二种情况,我们需要在比较前将浮点数四舍五入到一个指定的精度,使用

NormalizeDouble(double value, int digits)



 

对不起...

我上面的例子是基于一个错误。

这就是,任务是在FATLs 指标的可回溯 价格上。

我没有注意到欧元兑美元 的情况,并将 "出现的箭头 "误认为是牛市0和1。


然而,这个变体纠正了这种情况。


bool FATLsB=iCustom(NULL,0,"FATLs",0,0)>0;
bool FATLsS=iCustom(NULL,0,"FATLs",1,0)>0;
//--- открытие БАЙ закрытие СЕЛЛ ------------------
   if (FATLsB==1 && TotalBuy()==0) {CloseSell(); SetBuy(); }
 

大家下午好!

请告知。

假设我有一个慢速MA和一个快速MA在图表上交叉。 在第一条上。

然后让它再通过几个小节。

我怎样才能确定最后的МА是在哪一栏被越过的?

-----------------------------

我甚至无法思考--我应该如何处理这个问题?

 
Rita:

假设我有一个慢速MA和一个快速MA在图表上交叉。 在第一条上。

让然后又有一些酒吧过去了。

我怎样才能确定过去最后一次跨越给定的MA是在哪个条形上发生的?

对你来说,根本的区别是什么?第一根柱子上的交叉点可以和其他柱子上的交叉点一样被查看/搜索。你创建一个循环(例如从零条到条形图),在这个循环中,你查看条形图的价值并对其进行分析。我无法理解这个问题的意义....。
 

我需要知道在当前的酒吧。

自上一次两根柱子--MA_1和MA_2交叉以来,已经过去了多少个柱子。

如何安排这样的一个循环?

如果(MA_1>MA_2) {

 
Rita:

我需要知道在当前的酒吧。

自从两个MA_1 MA_2的最后一次交叉以来,已经过去了多少个柱子。

我如何做这个循环?

从当前条形图到MA转换位置的时刻,然后计数。