[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 399

 
kolyango:

我一定会看一下你的链接...

Criterion.mqh.

编写插件内容,仅此而已,没有任何东西可以打开或下载!


于是试了一下,从上一页开始:"在拖车上按鼠标右键,然后在菜单中 "另存为"?

我已经试过了,正在正常下载。


 
Roman.:


你有没有试过这种方式,从上一页开始:"右键单击拖车,然后在菜单中 "保存为链接"?

我已经试过了,对我来说效果不错。



已下载。为什么是.mqh而不是.mq4?
 

你能告诉我如何改变附加指标窗口的背景颜色,或者你能在配置文件中指定附加窗口的背景颜色吗?

//+------------------------------------------------------------------+
//|                                                  Custom MACD.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2004, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_width1  2
//---- indicator parameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- indicator buffers
double     MacdBuffer[];
double     SignalBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
 
kolyango:

已下载。为什么是.mqh而不是.mq4?


因为它是一个插件文件,比如说。

#include <stdlib.mqh>
#include <stderror.mqh>
//#include <dynamic_channel.mqh>             // динамический канал
#include <TrailingByFractals.mqh>          // trailing
阅读教程--这就是#include指令。
 

下午好!

你能告诉我如何在子窗口(图形对象)中画一个从0到4(例如)的垂直条(直方图)?

重点是,指标子窗口包含一条0线,在其两侧显示故障信号(卖出,买入)。

我知道如何用缓冲器做,但没有缓冲器可用,用完了。

谢谢。

 
LOA:

下午好!

请告诉我如何在一个子窗口(图形对象)中绘制一个从0到4(例如)的垂直条(直方图)。


创建对象
 
sergeev:
创建对象

很明显,用ObjectCreate 函数 ,但困难在于如何根据信号4或-4
相对于零线 的方向给图形对象赋值。
 
artmedia70:

就这么简单。让我们把旗帜作为一种信号。将有三个代码块,每个代码块只有在前一个代码块已经被执行时才会被执行。

最初所有的标志==false。

当第一个代码块被执行后,我们把第一个标志=true;现在第二个代码块被执行。一旦其条件得到满足,就设置第二个标志=true。
现在,第三个代码块被执行。一旦其条件得到满足,就设置第三个标志=true;以此类推。



给我一个链接,让我读到更多关于旗帜的信息,包括对其行动的描述和如何使用它们的例子?
 
LOA:

这可以通过ObjectCreate 函数来理解
但困难在于如何根据相对于零线的信号方向4或-4来给图形对象赋值。

缓冲器用完了 ))

#property indicator_separate_window
#property indicator_minimum -8
#property indicator_maximum 8
void start()  {
   ObjectsDeleteAll(1);
   for(int i=0;i<WindowBarsPerChart();i++){
         if(Open[i]>iMA(0,0,5,1,1,4,i))
            double xz=4;
         else xz=-4;
         ObjectCreate(i+" f",OBJ_TREND,1,iTime(0,0,i),0,iTime(0,0,i),xz);
         ObjectSet(i+" f", OBJPROP_RAY, 0);
   }
   WindowRedraw();
}
 
costy_:

我们没有缓冲区了 ))

你为什么要教不正确的编程?

ObjectsDeleteAll(1);

你怎么知道这个指标窗口描述符==1?