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

 
Frostr:
我已经把它掏空了...有一个直方图,所以如果你找不到用条形图的方法,你就得用它......
你喜欢条形图而不是蜡烛图吗?有趣的问题,但我讨厌在这上面浪费时间。事实上,柱状图也是一个带有开盘和收盘标签的柱状图
。如果你不关心这些标签的颜色,你可以像H.A.那样使用这种方法。只要计算柱状图的宽度,以像素为单位(有可能,我检查过,但我不记得帮助中的位置)并设置柱状图的宽度,而开盘和收盘将是图表属性 中指定的颜色。
 

为什么CListNode类中 的虚拟比较方法会被忽略?

#include <Arrays\List.mqh>
#define  SIZE 10

class CData : public CObject
  {
public:
   int m_data;
  };

class CListNode : public CList
  {
public:
   virtual int Compare(const CObject *node,const int mode=0) const {
      int _test=1;
      return(_test);
   }
  };

int OnInit() {
        CListNode *node=new CListNode;
        if(CheckPointer(node)==POINTER_INVALID) {
           Print("Не могу создать объект");
           return(INIT_FAILED);
        }
        else Print("Объект создан, работаем дальше");

        MathSrand(GetTickCount());
        for(int i=0;i<SIZE;i++) {
           CData *data=new CData;
           if(data==NULL) {
              Print("Нет возможности получить указатель");delete node;return(INIT_FAILED);
           }
           printf("Узел %i, данные узла %i",i,data.m_data=MathRand());
           node.Add(data);
        }
        
        node.Sort(0);
        int _total=node.Total();
        for(int i=0;i<_total;i++) {
           CData *data=node.GetNodeAtIndex(i);
           if(data==NULL) {
              Print("Нет возможности получить указатель");delete node;return(INIT_FAILED);
           }
           printf("Узел %i, данные узла %i",i,data.m_data);
        }

        if(CheckPointer(node)==POINTER_DYNAMIC) {Alert("Удаляем объект");delete node;}
        else Alert("Non-dynamic object");
   return(INIT_SUCCEEDED);
}
在调试器中检查,总是使用来自CObject的比较。
 

你好,我写了一个这样的EA。为什么它几乎每秒钟都会报告一个卖出信号?

//+------------------------------------------------------------------+

//| Peresechenie TM.mq4|

//| Popov Vladimir |

//| http://vk.com/id143715412 |

//+------------------------------------------------------------------+

#财产版权"Popov Vladimir"

#属性链接 "http://vk.com/id143715412"


双重SellPrice。

Double TakeProfit;

double StopLoss;


外部字符串 TimeFrame = "当前时间框架"。

外置 int HalfLength = 20;

外部int Price = PRICE_CLOSE;

外置双倍ATRMultiplier = 2.0。

外部的ATRPeriod = 100。

外部 bool Interpolate = true。



双重PriceHigh, PriceLow, PriceMiddle。

双重HighesBuffer[]。

double LowesBuffer[];

//+------------------------------------------------------------------+

//|专家初始化功能|

//+------------------------------------------------------------------+

int init()

{

如果(Digits == 3 || Digits == 5)

{

TakeProfit *= 10。

StopLoss *= 10;

}

return(0);

}

//+------------------------------------------------------------------+

//|专家去初始化功能|

//+------------------------------------------------------------------+

int deinit()

{





return(0);

}

//+------------------------------------------------------------------+

int start()

{

PriceHigh = iCustom(符号(),0,"时间",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0)。

PriceLow = iCustom(符号(),0,"时间",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0)。

PriceMiddle = iCustom(符号(),0,"时间",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,0,0)。


如果(Ask <= PriceLow)

{

Alert("Signal to Buy")。

}

如果(Bid >= PriceHigh)

{

Alert("Signal to sell")。

}

return(0);

}

//+------------------------------------------------------------------+

 

请告诉我是否可以在测试后自动保存报告?

我只需要在自动模式下做大量的测试运行(我计划通过优化而不使用GA),并将完整的报告(包括图片)保存在硬盘上。

 
tuner:

请告诉我是否可以在测试后自动保存报告?

我只需要在自动模式下做大量的测试运行(我计划通过优化而不使用GA),并将完整的报告(包括图片)保存在硬盘上。


有函数TesterStatistics( )和OnTester()。

看看他们,可能会有帮助

 
Pr0t0tip:

你好,我写了一个这样的EA。为什么它几乎每秒钟都会报告一个卖出信号?



尝试更换

if(Ask <= PriceLow)

 {

 Alert("Сигнал к покупке");

 }

 if(Bid >= PriceHigh)

 {

 Alert("Сигнал к продаже");

 }

 return(0);

int static flag=0;
if(Ask <= PriceLow && flag<1)

 {

 Alert("Сигнал к покупке");
flag=1;
 }

 else if(Bid >= PriceHigh && flag>-1)

 {

 Alert("Сигнал к продаже");
flag=-1;
 }
else flag=0;

 return(0);
 
Vinin:


有一个TesterStatistics()和 OnTester() 函数

看看他们,可能会有帮助。


谢谢你的建议,但这似乎没有帮助,因为需要的是报告本身的原始形式(htm)和图片。似乎没有现成的解决方案。我将尝试在autoit中制作一个脚本,在测试者指定的次数中按下 "开始 "按钮,每次运行后进入 "报告 "选项卡并将结果保存在文件中。
 

你好!请帮助我解决以下问题:从625版本开始,警报(...)、打印(...)、评论(...)函数的值没有显示在MT4测试器的指标图上;这些值在指标启动实际交易时或通过调试器显示。所以,至少使用Print(...)函数 监测历史数据的参数变化变得不可能。我在第610次构建中没有遇到问题,因为所有的数值都显示在终端的 "专家 "标签中。

也许,代码应该以类似于MQL5的其他方式进行重新设计?我不知道该怎么做,我仍然要使用旧的构建。

 

你好。 有谁遇到过这个问题吗?

我在文件夹里有几个EA,但终端(MT 4,Build 625)没有这些EA。而那些在终端上的,却不在文件夹里。这是一个奇迹吗?



 
Ale-xander:

你好。 有谁遇到过这个问题吗?

我在文件夹里有几个EA,但终端(MT 4,Build 625)没有这些EA。而那些在终端上的,却不在文件夹里。这是一个奇迹吗?



没有奇迹。

文件 --> 打开数据文件夹 --> 在打开的窗口中 --> MQL4 --> 这就是你所习惯的文件夹的位置。这篇文章的链接在论坛的主页上。我只是太懒了,不愿意做。