[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 315

 
dekker:

朋友们!

出现了一个全球性的问题

是否有可能在周末时在终端获得tick流,以便我可以安静地编写和调试EA?

我已经有了一些关于如何在我的交易机器人中使用它的提示。

我不能用一个tick来触发EA,我需要一个特定范围内的ticks流。

自然界中是否有这样的东西?

周末模拟流媒体报价的mt4服务器?

有的经纪人在周末工作,谷歌一下。
 
dekker:

朋友们!

出现了一个全球性的问题

是否有可能在周末时在终端获得tick流,以便我可以安静地编写和调试EA?

我已经有了一些关于如何在我的交易机器人中使用它的提示。

我不能用一个tick来触发EA,我需要一个特定范围内的ticks流。

自然界中是否有这样的东西?

周末模拟流媒体报价的mt4服务器?

悬挂一个脚本 -
#import "user32.dll"
   int PostMessageA(int hWnd, int Msg, int wParam, string lParam);
   int RegisterWindowMessageA(string lpString);
#import

int start(){
   bool asd;
   while(!IsStopped()){
      PostMessageA (WindowHandle (Symbol(), Period()), WM_COMMAND, 33324, 0);
      PostMessageA (WindowHandle (Symbol(), 0), RegisterWindowMessageA ("MetaTrader4_Internal_Message"), 2, 1);
      Sleep(5000);
      if(asd){Comment("A");asd=false;}else{Comment("V");asd=true;}
   }
   return(0);
}
勾选仿真。我不知道这是否是你需要的。还有一个定时器,可以用kernel32 或user32,在论坛上查一下。
 

大家好,请帮助一个新来者。

问题如下......例如,我有一个指标,它是在#property indicator_separate_window 子窗口中绘制的,该指标有两个 "缓冲区",也就是两条线......我的问题是,当两条线交叉时,如何使箭头或线出现在主窗口(不是指标窗口,而是价格图表窗口)......

例如拿一个普通的RSI 来说,如何使过零线在价格图表上显示箭头...

 
clubsmi:

大家好,请帮助一个新来者。

问题如下......例如,我有一个指标,它是在#属性indicator_separate_window中绘制的,该指标有两个 "缓冲区",它变成了两条线......我的问题是如何在主窗口(不是指标窗口,而是价格图表窗口)中,当这些线交叉时做出箭头或线条......?

例如拿一个普通的RSI 来说,如何使过零线在价格图表上显示箭头...


其他指标通过iCustom在#property indicator_chart_window 上,并在那里DRAW_ARROW。
 

我无法理解这种说法。

if (counted_bars==0 && downloadhistory)

如果计算的条数=0,并且downloadhistory?downloadhistory是一个全局逻辑变量,最初false它带有什么条件?如果条件是这样,我会理解

如果 (counted_bars==0 && downloadhistory == false)

请向初学者解释一下!

 
dekker:

朋友们!

出现了一个全球性的问题

是否有可能在周末时在终端获得tick流,以便我可以安静地编写和调试EA?

我已经有了一些关于如何在我的交易机器人中使用它的提示。

我不能用一个tick来触发EA,我需要一个特定范围内的ticks流。

自然界中是否有这样的东西?

周末模拟报价流的mt4服务器 ?

图书馆。

4.7" 控制图更新的功能"。

 

还有一件事:)

在MT4应用程序的自定义指标 中,有一个ZigZag。它有参数。

//---- indicator parameters
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

他们代表着什么?

 

瓦迪姆,这没有用。因为是周末,我在自学阅读-写作。我正在编写两个用于检查的脚本:我把其中一个放在一个秒级的时间框架上,它逐一生成一个数组元素。第二个我发给任何一对,它打印出这个数组。所以,脚本。

秒钟。

#import "SharedMemoryMT4.dll"
        bool MemoryWriteInt(int nArea, string sPrefixArea, int nIndex, string sName, int nStartByte, int nValue);
        int MemoryCreateProjection(int nArea, string sPrefixArea, int hFileUser, int nIndex, string sName, int nSize);
        bool MemoryResize(int nArea, string sPrefixArea, int nIndex, string sName, int nSize);
#import
int Σ, Δt, j;
int start(){
   GlobalVariableSet("nAddress", MemoryCreateProjection(1, "", NULL, -1, "ind", 4));
   for(int i=1; i>Bars; i++){
      Δt=Time[i-1]-Time[i];
      Σ=Σ+Δt;
      MemoryResize(1, "", -1, "ind", 4*Σ);//=ArrayResize(ind, Σ);
      for(; j<Σ; j++) MemoryWriteInt(1, "", -1, "ind", j*4, i);
   }
   /*
   Δt[0]=1 => addr(j*4)=0*4=0, var(i)=0x0001.//out: {0x0001}
   Δt[0]=2 => addr(j*4)=0*4=0, var(i)=0x0001,
              addr(j*4)=1*4=4, var(i)=0x0001.//out: {0x0001, 0x0001}
   Δt[0]=1, Δt[1]=2 => addr(j*4)=1*4=4, var(i)=0x0002,
                       addr(j*4)=2*4=8, var(i)=0x0002.//out: {0x0001, 0x0002, 0x0002}
   Δt[0]=2, Δt[1]=2 => addr(j*4)=2*4=8, var(i)=0x0002,
                       addr(j*4)=3*4=12, var(i)=0x0002.//out: {0x0001, 0x0001, 0x0002, 0x0002}
   */
   return(0);
  }

第二个脚本是打印数组的,它挂在任何已经形成的对上。

#import "SharedMemoryMT4.dll"
        int MemoryReadInt(int nArea, string sPrefixArea, int nIndex, string sName, int nStartByte);
        bool MemoryUnProjection(int nArea, string sPrefixArea, int nIndex, string sName, int pcAddress);
        int MemorySize(int nArea, string sPrefixArea, int nIndex, string sName);
#import

int start(){
   for(int i=0; i<MemorySize(1, "", -1, "ind"); i=i+4) Print(MemoryReadInt(1, "", -1, "ind", 4*i));
   MemoryUnProjection(1, "", -1, "ind", GlobalVariableGet("nAddress"));
   return(0);
  }

为了公平起见,我把

{MemoryWriteInt(1, "", -1, "ind", j*4, i); Print(j, " - ", i);}

二是为。看了看日志。至少有些值是写在地址上的,或者说是相对于nAddress的偏移量:0-3FF,7FF-83FF,BFFF-C3FF。对于所有其他范围--MemoryWriteInt 中的关键错误我附上历史文件,其中有几秒钟的烛台。

附加的文件:
sec_eurusd1.zip  18 kb
 
gyfto:

瓦迪姆,它没有用。因为是周末,我在自学阅读-写作。我正在编写两个用于检查的脚本:我把其中一个放在一个秒级的时间框架上,它逐一生成一个数组元素。第二个我发给任何一对,它打印出这个数组。所以,脚本。

秒钟。

第二个脚本是打印数组的,它挂在任何已经形成的对上。

为了公平起见,我把

二是为。看了看日志。至少有些值是写在地址上的,或者说是相对于nAddress的偏移量:0-3FF,7FF-83FF,BFFF-C3FF。对于所有其他范围--MemoryWriteInt 中的关键错误。我附上历史文件,其中有几秒钟的烛台。

套件中的测试脚本是否有效?

你不需要经常改变分配的内存大小。这是个刹车。内存是按4Kb离散分配的。圆了。这是一个绘图功能。

做一个简单的测试项目,以便你可以检查它。你所发表的内容是不可能检查的。有太多的语法错误。

 
GaNDarM:

我无法理解这种说法。

如果计算的条数=0,并且downloadhistory?downloadhistory是一个全局逻辑变量,最初false它带有什么条件?如果条件是这样,我会理解

如果 (counted_bars==0 && downloadhistory == false)

请向一个初学者解释一下!


让我现在试试。当我们写下

bool bVar=true;
if(bVar) какие-то_действия
//------------------
bool bVar=false;
if(!bVar) какие-то_действия
//------------------
if(true) какие-то_действия

那么在所有情况下,这些操作将总是被执行,因为前两个与第三个类似(检查,简化表达式)。也就是说,如果它们是布尔变量,我们不需要把==true, ==false放进去,因为它们本身就已经是真或假了。