多币种顾问问题 - 页 7

 
好的!我现在要研究一下。但测试人员不知道该EA连接到什么工具。
 

数据时间iTime(字符串符号,int timeframe,int shift)。

返回相应图表(符号,时间框架)中打开的条形图的时间值。在出错的情况下,该函数返回0。关于错误的更多信息,请调用GetLastError()。对于当前的图表,每个条形图的开盘时间的信息位于预定义的数组Time[]中。参数: 符号 - 仪器的符号名称。NULL表示当前符号。 Timeframe - 周期。可以是图表中的一个时期。0表示当前图表的周期。 shift - 时间框架值的索引(相对于当前条形图按指定的周期数向后移动)。

---------------------------------------------------------------------------------------------------------------------

根据我的理解,你应该首先设置,比如说。

static int prevtimeEURUSD = 0;

然后将其插入所需的对的代码中

double TTTTTT=iTime("EURUSD",60,0); 
if(TTTTTT == prevtimeEURUSD) 
       return(0);
   prevtimeEURUSD = TTTTTT
 
rid:

...

根据我的理解,首先要做的是设置,比如说。

static int prevtimeEURUSD = 0;

然后将其插入我们需要的一对代码中

double TTTTTT=iTime("EURUSD",60,0); 
if(TTTTTT == prevtimeEURUSD) 
       return(0);
   prevtimeEURUSD = TTTTTT

是的,请看在ProtoType(Rosh)中是如何做的。试图插入一个链接,有些东西没有通过(通过在CodeBase中搜索找到它)。isNewBar()函数有一个二维数组用于此目的--秩序是伟大的力量!
 
谢谢你!我有这个专家。我现在就去看一看。
 
亲爱的克勒克!
我想做一个多货币指标,比如说两个货币对。首先,应将这些货币对的报价带入一种形式(例如,将其转换为百分比变化,即(Close[i]-Close[i+1])/100%--对吗?),然后,如果我想看到它们之间的差异动态,将其输入指标。如何做到这一点?
 

如果你想知道差异的动态,你不需要把它转换成百分比,你可以这样做。

int start(){
 
 double Point1 = MarketInfo("GBPUSD",MODE_POINT);
 double Point2 = MarketInfo("USDJPY",MODE_POINT);
 
 
 MacdBuffer[0] = iMACD("GBPUSD",0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)/Point1
              + iMACD("USDJPY",0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)/Point2;
     Comment("MACD "+MacdBuffer[0]);         
 
return(0);
}
 
非常感谢你,Xeon!!!!我将试一试!
 
Xeon!如果你不介意把你需要的东西丢在上面,从开始....因为,我还是个傻子!!。
 
nido:
Xeon!如果你不硬,从开始的顶部放下你需要的东西...因为我还是个傻子!!。


事实上,这是在几分钟内写成的测试脚本(用来测试代码块)。

不得不为你勾勒一个指标 :-)

//+------------------------------------------------------------------+
//|                                                    MultyMACD.mq4 |
//|                                           Copyright © 2007, xeon |
//|                                                       xeon@nm.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, xeon"
#property link      "xeon@nm.ru"
 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1  2
//---- buffers
double MacdBuffer[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,MacdBuffer);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,SignalBuffer);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
   IndicatorShortName("MultyMACD");
     
 
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
 
   if(IsOptimization()==true || IsTesting()==true){Comment("В тестере будет ошибка деления на 0. описано - в справке по MarketInfo");return(0);}
//----
 double Point1 = MarketInfo("GBPUSD",MODE_POINT);
 double Point2 = MarketInfo("USDJPY",MODE_POINT);
 
 
 MacdBuffer[0] = iMACD("GBPUSD",0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)/Point1
              + iMACD("USDJPY",0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)/Point2;
 
 for(int i=9;i>=0;i--){
     SignalBuffer[0]=iMAOnArray(MacdBuffer,0,9,0,MODE_SMA,i);
 }
  
//----
   return(0);
  }
//+------------------------------------------------------------------+

我希望你能想出办法

p.s. 请记住,这个指标只能在线工作,在历史上你需要创建一个循环。

 
xeon:
nido
Xeon!如果你不硬,从开始的顶部放下你需要的东西...因为我还是个傻子!!。


事实上,这是在几分钟内写成的测试脚本(用来测试代码块)。

不得不为你勾勒一个指标 :-)

//+------------------------------------------------------------------+
//|                                                    MultyMACD.mq4 |
//|                                           Copyright © 2007, xeon |
//|                                                       xeon@nm.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, xeon"
#property link      "xeon@nm.ru"
 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1  2
//---- buffers
double MacdBuffer[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,MacdBuffer);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,SignalBuffer);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
   IndicatorShortName("MultyMACD");
     
 
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
 
   if(IsOptimization()==true || IsTesting()==true){Comment("В тестере будет ошибка деления на 0. описано - в справке по MarketInfo");return(0);}
//----
 double Point1 = MarketInfo("GBPUSD",MODE_POINT);
 double Point2 = MarketInfo("USDJPY",MODE_POINT);
 
 
 MacdBuffer[0] = iMACD("GBPUSD",0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)/Point1
              + iMACD("USDJPY",0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)/Point2;
 
 for(int i=9;i>=0;i--){
     SignalBuffer[0]=iMAOnArray(MacdBuffer,0,9,0,MODE_SMA,i);
 }
  
//----
   return(0);
  }
//+------------------------------------------------------------------+

我希望你能想出办法

p.s. 请记住,这个指标只能在线工作,在历史上你需要创建一个循环。

谢谢你,Xeon!!!。我可以就EA的想法给您写一封私人信件吗? 我的电子邮件:ni_do@mail.ru