[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 10

 
还有一个问题与图书馆的运作有关。
我创建了库文件,编译了它,一切都没有错误。
我把这个函数导入到指标代码中,进行了编译,一切也都正常了。
当我启动指标时,要导入的函数 没有被执行,当我用

指标代码,一切正常。下面是库的代码。

//+------------------------------------------------------------------+
//|                                                         lib1.mq4 |
//|                                         Copyright © 2012, Fox.RM |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Fox.RM"
#property link      "http://www.metaquotes.net"
#property library
//+------------------------------------------------------------------+
//| My function                                                      |
//+------------------------------------------------------------------+
double Sredn(double ArrSr[])
{
double a=1,c,step=1/20;
for (int i=0;i<=20;i++)
{if (ArrSr[i]==0){a*=1;}else{a*=MathAbs(ArrSr[i]);}}
c=MathPow(a, step);
  return(c);
}
//+------------------------------------------------------------------+

这是指标代码中的一个调用。

#import "lib1.ex4"
    double Sredn(double& ArrSr[]);
    void SetText(string name, string name2, string text, string text2, color c, 
int size);
#import

 
Fox_RM:
大家好!
我决定重写我的专家顾问指标的代码,以跟踪
我决定改变我的指标的代码,以追踪其信号的处理。
我在编译时没有错误,在策略测试器中也没有错误。

我不知道如何使用它。

Z.I.我相信有很多错误和愚蠢的,请射空。

int counted_bars=IndicatorCounted(); 

你自己写道,你有一个专家顾问,而这个功能是针对一个指标的。

强行计算你要的条数,不能再多了。


第二,增加一个检查,即这个信号已经有一个开盘,否则你会得到一个新的订单,每一个刻度。

第三,检查iCustom函数

 
ilunga:

你自己写道,你有一个专家顾问,而这个功能是为一个指标服务的。

强行计算你要的条数,不能再多了。

那你是如何强行计算的呢?
 
Fox_RM:
大家好!
我决定重写我的专家顾问指标的代码,以跟踪
我决定改变我的指标的代码,以跟踪其信号的操作。
我在编译时没有错误,在策略测试器中也没有错误。

我不知道如何使用它。

Z.I.我相信有很多错误和愚蠢的,请射空。


开盘价
if (Sredn(TP_UP)>=2.5)OrderSend(Symbol(),OP_SELL,0.1,Close[i],2,50,20);
 if (Sredn(TP_DN)>=2.0)OrderSend(Symbol(),OP_BUY,0.1,Close[i],2,50,20);
 
Fox_RM:
你如何强制计数?
只有第0条的信号对专家顾问和开盘交易是重要的,不是吗?因此,将计算周期从条数缩短到该计算所需的条数
 
r772ra:

开盘价

即用这个条件来重新计算酒吧?

但在我的指标中,每一个刻度 都会计算TP_UP和 TP_DN 数组。因此,我们应该首先计算它们。

 
ilunga:
对于你的专家顾问和打开交易,唯一重要的是第0条的信号,不是吗?因此,将计算周期从条数缩短到这个计算所需的条数

我试着用NewBar() 函数在一个新条 上开单。如果是用于此目的?

例如, 如果(NewBar())i++; 类似这样。

 
ilunga:
对于你的专家顾问和交易开盘来说,只有第0条的信号才是重要的,不是吗?因此,将计算周期从条数缩短到该计算所需的条数
而且我还是不太明白,对于专家顾问来说,这两种计算方法的根本区别是什么;(
 
Fox_RM:
还有一个问题与图书馆的运作有关。
我创建了库文件,编译了它,一切都没有错误。
我把这个函数导入到指标代码中,进行了编译,一切也都正常了。
当我启动指标时,要导入的函数没有被执行,当我用

指标代码,一切正常。下面是库的代码。

这是指标代码中的一个调用。

也许你在指标init()中没有正确准备数组?我对你的理解是否正确--导入的功能 在那里不起作用?
 
TarasBY:
也许在指标init()中没有正确准备数组?我对你的理解是否正确--导入功能在那里不起作用?
不,它没有。我检查了一下,一切似乎都是正确的。此外,为什么它在程序中使用时能正常工作?