初学者的问题 MQL5 MT5 MetaTrader 5 - 页 317

 
artmedia70:
//+------------------------------------------------------------------+
//|                                                    trendyxV1.mq5 |
//+------------------------------------------------------------------+
#include <Canvas\Canvas.mqh>
CCanvas LomLine;
int KoorX[4]={100,200,350,480};
int KoorY[4]={100,150,380,150};
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   LomLine.Destroy();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   LomLine.CreateBitmapLabel("trendyx",0,0,800,800,COLOR_FORMAT_ARGB_RAW);
   LomLine.PolylineAA(KoorX,KoorY,ColorToARGB(clrRed, 155),STYLE_SOLID);
   LomLine.Update();

  }
//+------------------------------------------------------------------+

,.

 
pako:

,.

 
EA已经停止开仓,因为"'OrderSend'函数的参数9为无效的整数"。谁能解释下这是什么?据推测,这是由于MT4终端的更新 造成的。
 
Katerina:
EA已经停止开仓,因为"'OrderSend'函数的参数9为无效的整数"。谁能解释下这是什么?推测是由于MT4终端的更新
请附上调用"OrderSend"函数的代码。据推测,这个神奇的数字没有正确设置。
 
啊,好吧,我已经把它修好了。谢谢你的反馈。
 
我想知道你是否可以在MQl5的图表中添加一个动画,就像一个正在敲打蜡烛的人,在指标的信号上,或者仅仅是因为
 
aleks557:
我想知道你是否可以在MQl5的图表中添加一个动画,就像一个人在敲打蜡烛,敲打指标信号,或者就像这样。
动画 将不得不从许多交替出现的.bmp图像中手动创建。它们通常是由一个点阵在画布上画出来的。
 
barabashkakvn:
该动画必须由许多连续的.bmp图像手动创建。或者从画布上的点阵中绘制。

你好,小矮人,"KANVAS "在哪里? 我知道动画用Photoshop做的,但 "KANVAS "还没有,我怎么在那里买票?

因为谷歌让我找到了某种奶制品。

 
aleks557:

你好,小矮人,"KANVAS "在哪里? 我知道动画是用Photoshop做的,但 "KANVAS "还没有,我怎么在那里买票?

我在谷歌上搜索了一个奶制品。

CCanvas是一个用于创建自定义图形的类

使用的例子,从MetaEditor的路径:...\MQL5\Scripts\Examples\Canvas\

 
aleks557:
我想知道在MQl5中是否可以为图表添加动画?

这里有更多。

关于交易、自动交易系统和测试交易策略的论坛

新手的问题

雷纳特, 2012.10.20 14:30

你知道在我们的坎儿井里有一个完美的提示,即背缓冲,并链接到屏幕上的一个物体吗?

我们可以完美地、快速地、没有人工痕迹地绘制框架。请看一下OpenCL测试 中基于帧序列生成的视频例子。

使用一个漂亮的战术。

  1. 在图表上创建一个位图标签图形对象

       string objname ="OpenCL_"+IntegerToString(ChartID());
       string resname ="::Mandelbrot_"+IntegerToString(ChartID());
    //--- creating the object for graphics display
       ObjectCreate(0,objname,OBJ_BITMAP_LABEL,0,0,0);
       ObjectSetInteger(0,objname,OBJPROP_XDISTANCE,4);
       ObjectSetInteger(0,objname,OBJPROP_YDISTANCE,26);
    

  2. 在内存中创建一个空的图形资源,并将其与先前创建的对象绑定。

    //--- create initial empty picture
       uint buf[];
    
       ArrayResize(buf,SIZE_X*SIZE_Y);
       ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
       ObjectSetString(0,objname,OBJPROP_BMPFILE,resname);
    
    这就是奇迹发生的地方。图形对象接受与图形资源的直接绑定。而且这种绑定是智能的,有缓存,因为它是专门为快速分页和处理后备箱而创建的。

  3. 现在你可以很容易地在你的缓冲区里画画,而不必担心与屏幕上的对象绑定。

    //--- рисуем что хотим в buf
    ....
    
  4. 现在是时候在屏幕上显示这个更新的位图了

          //--- saving the frame in memory and drawing it
          ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
          ChartRedraw();
    
    为了做到这一点,我们 "重建 "资源(实际上没有重建,因为所有的尺寸都是一样的),把新的位图复制到它上面,这个资源的变化计数器被递增。

    请注意,图形对象objname本身并没有以任何方式被触及,因为它已经与资源相关联。

    然后我们通过ChartRedraw调用屏幕重绘,这需要绘制图形对象。它被绑定到我们的资源上,它使用位图更改计数器来控制。如果保存在图形对象中的位图的变化计数器与资源的计数器不一致,位图将被自动复制到图形对象中,并以保护的方式进行可视化。如果计数器匹配,那么图片就会显示出来,不会有任何变化。

这是一种安全(来自MQL5和终端渲染系统本身的同时访问)和快速处理渲染框架的简单方法。

你一定要试试。