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

 

下午好。我在对数值进行规范化处理,但在调试时,用*e的数字怎么会呢?

我不能把这些值写进Excel。

如果另一个参数被分配给数组(arrayZ[0][q][z]= 0;),它将保存

for(int z = 0; z < copied && z<=ARRAY_SIZE_X; z++) // отбор по барам
   {
    arrayIndexY[z] = srcArr[z].close; //данные колонки У

    for(int q = 1; q <= copied-1; q++) //Перебор периодов
    {
  
    {
    qer = NormalizeDouble(sm.d[q-1].m[nBar-z],Digits());
    wer = NormalizeDouble(sm.d[q].m[nBar-z],Digits());
    arrayZ[0][q][z] = NormalizeDouble(qer-wer,Digits());} // ответы с е, че заааа


    }
      
   }
   flag = false;
        
   GenerateCsv("test.csv");  
   }
附加的文件:
d4rw9gqntl.jpg  157 kb
 
Top2n:

下午好。我在对数值进行规范化处理,但在调试时,用*e的数字怎么会呢?

我不能把这些值写进Excel。

如果另一个参数被分配给数组(arrayZ[0][q][z]= 0;),它将保存

for(int z = 0; z < copied && z<=ARRAY_SIZE_X; z++) // отбор по барам
   {
    arrayIndexY[z] = srcArr[z].close; //данные колонки У

    for(int q = 1; q <= copied-1; q++) //Перебор периодов
    {
  
    {
    qer = NormalizeDouble(sm.d[q-1].m[nBar-z],Digits());
    wer = NormalizeDouble(sm.d[q].m[nBar-z],Digits());
    arrayZ[0][q][z] = NormalizeDouble(qer-wer,Digits());}
    qer;

    }
      
   }
   flag = false;
        
   GenerateCsv("test.csv");  
   }
使用DoubleToString() 进行打印输出。
 
Artyom Trishkin:
使用DoubleToString()进行打印输出。
谢谢你!
 
你好,在这个论坛上有可能赚钱,这是真的吗?如果是这样,你能告诉我怎么做吗?
 
elektrik777:
你好,在这个论坛上有可能赚钱,这是真的吗?如果是这样,你能告诉我怎么做吗?
不再相关--这种可能性已被禁用,但你可以编程、销售 计算机资源 和写文章。
 

好时间,任务:在给定的问题条数中找到H(最大)或L(最小)价格。

我试探了一下,我不能指定一个选择范围,即在哪里插入变量(DO),以选择搜索区间。

double UpperFractal(int DO)  // Фрактал UP
{
  //--- объявление переменных
   int n,UpperFractal_1;
//--- объявление массивов для записи значений буферов индикатора iFractal
   double FractalUp[];
   double UpFractal_1;
//--- сначала нужно записать в массивы значения буферов индиктора Fractal
//--- заполнение данными буфера
   CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp);
//--- индексация как в таймсериях
   ArraySetAsSeries(FractalUp,true);
  
//--- далее используем оператор цикла for для поиска первого верхнего фрактала
   for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++)
     {
      //--- если непустое значение, прерываем цикл
      if(FractalUp[n]!=EMPTY_VALUE)
         break;
     }
//--- запишем ценовое значение первого фрактала в переменную
   UpFractal_1=FractalUp[n];
//--- запишем индекс первого фрактала в переменную
   UpperFractal_1=n;
  
   return (UpFractal_1);
}
 
Top2n:

好时间,任务:在给定的问题条数中找到H(最大)或L(最小)价格。

我试探了一下,我不能指定一个选择范围,即在哪里插入变量(DO),以选择搜索区间。

double UpperFractal(int)  // Фрактал UP
{
  //--- объявление переменных
   int n,UpperFractal_1;
//--- объявление массивов для записи значений буферов индикатора iFractal
   double FractalUp[];
   double UpFractal_1;
//--- сначала нужно записать в массивы значения буферов индиктора Fractal
//--- заполнение данными буфера
   CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp);
//--- индексация как в таймсериях
   ArraySetAsSeries(FractalUp,true);
  
//--- далее используем оператор цикла for для поиска первого верхнего фрактала
   for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++)
     {
      //--- если непустое значение, прерываем цикл
      if(FractalUp[n]!=EMPTY_VALUE)
         break;
     }
//--- запишем ценовое значение первого фрактала в переменную
   UpFractal_1=FractalUp[n];
//--- запишем индекс первого фрактала в переменную
   UpperFractal_1=n;
  
   return (UpFractal_1);
}


为什么我一定要用分形?

首先对所需的范围进行CopyHigh(),然后在复制范围的数组中寻找max(ArrayMaximum())。

与min相同,但CopyLow()和ArrayMinimum()

 
谢谢你!!!!!
 

我不明白哪里出了问题,任务是在一个给定的区间(索引)上找到最小值

//+------------------------------------------------------------------+
//| Получим Low для заданного номера бара                            |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
  {
   double low=0;
   ArraySetAsSeries(Low,true);
   int copied=CopyLow(symbol,timeframe,0,index,Low);
   if(copied>0 && index<copied) low=ArrayMinimum(Low);
   return(low);
  }
 
Top2n:

我不明白哪里出了问题,任务是在一个给定的区间(索引)上找到最小值

//+------------------------------------------------------------------+
//| Получим Low для заданного номера бара                            |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
  {
   double low=0;
   ArraySetAsSeries(Low,true);
   int copied=CopyLow(symbol,timeframe,0,index,Low);
   if(copied>0 && index<copied) low=ArrayMinimum(Low);
   return(low);
  }


ArrayMinimum返回元素的INDEX,该值是最低的。现在我们需要通过索引lowLow 数组中获取数值本身。

低[低]