新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1388

 
Artyom Trishkin:

试试吧。

试试吧。第一印象是,装了3或4个工具,而需要10个。
这些故事是为他们所有人上传的。
 
Valeriy Yastremskiy:
试试吧。第一印象是,3或4个工具正在加载,但我需要10个 。
这些故事在所有的人身上都得到了体现。

那我就不知道了--我已经很久没有开过四合院了。

 

我打开mt4,快速检查算法。

非常奇怪的是,它在测试器中工作正常,但在真实账户中安装后,却出现交易逆转。代码很简单,只有2个指标缓冲区


 
MakarFX:
非常感谢您的帮助。我重新设计了这部分代码,在启用价格过滤器后,现在挂单的设置没有错误。只有当挂单仍然挂着的时候,才会跳过这些信号。如愿以偿。再次非常感谢您))))。我只是有一个问题--有些地方有信号,但没有设置待定的信号,也没有出现错误。所以,这个地方没有合适的条件,没关系,你可以放心地生活?))而且这个地方也没有待定的订单......。
 
DanilaMactep:
非常感谢您的帮助。我重新设计了这部分代码,在启用价格过滤器后,现在挂单的设置没有错误。只有那些信号被跳过,当挂单仍在徘徊。如愿以偿。再次非常感谢您))))。我只是有一个问题--有些地方有信号,但没有设置待定的信号,也没有出现错误。所以,这个地方没有合适的条件,没关系,你可以放心地生活。)))),而且这个地方也没有待定的订单......。
如果没有合适的条件,而且是正常的,你可以接受。
 
Artyom Trishkin:

那我就不知道了--我已经很久没有开过四合院了。

错了,测试器所取的其他仪器的数据是电流。就从这里(从其他工具)你可以计算出与当前时间 的差异。如果它接近当前时间,并且加载了历史记录,你可以对测试者的时间进行转变。这是一个拐杖)。

 

问题:创建的面板 大小为370,在压缩图形时,我如何调整大小为200?

#property strict

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots   0

#include "PanelDialog.mqh"
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- create application dialog
   if(!ExtDialog.Create(0,"Spread",0,12,12,250,370))
     return(INIT_FAILED);
//--- run application
   if(!ExtDialog.Run())
     return(INIT_FAILED);
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//---
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

问题:创建的面板大小为370,在压缩图形时,我如何调整大小为200?

那么你是如何定义图形压缩的呢?
 
MakarFX:
那么你是如何定义图形压缩的呢?
   if(id==CHARTEVENT_CHART_CHANGE) {
      // ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // Высота графика
   }
 
Vitaly Muzichenko:

如果在高度上压缩

   int ChartHigh=(ChartGetDouble(0,CHART_PRICE_MAX,0)-ChartGetDouble(0,CHART_PRICE_MIN,0))/Point; //высота графика в пунктах
   if(ChartHigh>500)  
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)

如果压缩整个宽度

   if(ChartGetInteger(0,CHART_SCALE,0)>2) 
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)
在宽度上,你也可以用 CHART_VISIBLE_BARS