[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 107

 
在这个网站上是否有一个交易日的支撑位阻力位 的指标,那是不能重绘的。还可以选择重新绘制哪种蜡烛(日、月、周)。如果我想用这个指标作为我自己估计的基础,我不需要太仔细地看,但我希望能得到一个好的结果。
 

Pupersa, найди этот ордер и измени в нём параметр "стоплосс", ничё сложного.


如果你不介意的话,你能详细说明一下吗?
 
artmedia70:
让我把螺母给你,你告诉我为什么车不能启动......:)


有了正确的螺母,你可以告诉我...:-)

附上该文件...提前感谢!

附加的文件:
demo1.3.1.mq4  36 kb
 
Pupersa:

如果你不介意的话,你能详细说明一下吗?
在教科书或文件中搜索 "与订单一起工作"。使用订单搜索功能,根据你的参数找到一个订单,用订单修改功能改变它。
 

请帮助我找到脚本中的一个错误。

问题的实质是有4个文件,需要打开每个文件的值,将所有内容写入一个数组,并计算出平均最大和最小值,然后将其传递给另一个数组。

错误是这样的:当我调用 GetFileData();,ArrInsertInt(InsertArr, MathAbs(StrToInteger(value));时,它开始添加数值,并没有再次写入。

string FNLenUp;//имя файла для записи\чтения длин восходящего движения
string FNSpeedUp;//имя файла для записи\чтения скорости восходящего движения
string FNLenDown;//имя файла для записи\чтения длин восходящего движения
string FNSpeedDown;//имя файла для записи\чтения скорости восходящего движения 
//----------------------------------------------------------------------------------------------------------//
int SpeedArrUp[];//массив времени фиксации цен восходящего
int LengthArrUp[];//массив цен восходящего
int SpeedArrDown[];//массив времени фиксации цен нисходящего
int LengthArrDown[];//массив цен нисходящего
extern double percent = 0.005;//пункты
int init()
{
    GetNameF();
    GetFileData(FNLenUp,LengthArrUp);
    GetFileData(FNSpeedUp,SpeedArrUp);
    GetFileData(FNLenDown,LengthArrDown);
    GetFileData(FNSpeedDown,SpeedArrDown);
    
}
int GetFileData (string FileName, int& RetArr[])
{

     
    int Handle = 0;//файловый указатель
    int i = 0;
    int F_newFile = -1;//Флаг создания нового файла (1)-да (0)-нет
    int InsertArr[];//Массив для извлечения в него данных из файла
    int ArrSize = -1;//Размер массива
    int ArrMax = -1;//Максимальное значение
    int ArrMin = -1;//Минимальное значение
    int ArrAverage = -1;//Среднее значение
    string value = 0;
    //---------------------------------------------------------------------//
    //Print(ArrSize);
    //Смотрим существует ли файл


      //И меняем флаг что файл не создавался 
      F_newFile = 0;
      //значит открываем его для чтения
      Handle=FileOpen("lengthEURUSD0.0050Down.csv", FILE_READ);
      if(Handle<1)
      {
         Print("Ошибка открытия файла для чтения.");
         return(0);
      }
      FileSeek(Handle, 0, SEEK_SET);
      while(FileIsEnding(Handle)==false)  
      {                                
         value =FileReadString(Handle);
         if(value!="")
         {
            //Записываем всё в массив из файла
            ArrInsertInt(InsertArr, MathAbs(StrToInteger(value)));
         }  
         if(FileIsEnding(Handle)==true)
         {
            break;
         }     
      }
      //Рассчитываем значения средние максимальные и т.д.
      ArrSize = ArraySize(InsertArr);
      Print(ArrSize);
      //---------------------------------------------------------------------//
      ArrMax = ArrayMaximum(InsertArr,ArrSize,0);
      ArrMax = InsertArr[ArrMax];
      //---------------------------------------------------------------------//      
      ArrMin = ArrayMinimum(InsertArr,ArrSize,0);
      ArrMin = InsertArr[ArrMin];
      //---------------------------------------------------------------------//      
      ArrAverage = 0;
      for(i = 0; i<=ArrSize; i++)
      {
         ArrAverage = ArrAverage+InsertArr[i];
      }
      ArrAverage = ArrAverage/ArrSize;
      //---------------------------------------------------------------------// 
      FileClose(Handle);   

    //---------------------------------------------------------------------//
    //Смотрим если все значения есть, тогда запихиваем всё в массив и передаём его
    if(F_newFile != -1 && ArrSize != -1 && ArrMax != -1 && ArrMin != -1 && ArrAverage != -1)
    { 
      ArrInsertInt(RetArr,F_newFile);
      ArrInsertInt(RetArr,ArrSize);
      ArrInsertInt(RetArr,ArrMax);
      ArrInsertInt(RetArr,ArrMin);
      ArrInsertInt(RetArr,ArrAverage);
      ArrInsertInt(RetArr,Handle);
      Print(RetArr[0],"|",RetArr[1],"|",RetArr[2],"|",RetArr[3],"|",RetArr[4],"|",RetArr[5]);
      return (RetArr);
    }
    //---------------------------------------------------------------------//
    //иначе передаем только файловый указатель
    ArrInsertInt(RetArr,Handle);
    ArrInsertInt(RetArr,F_newFile);    
    return (RetArr);
}
void GetNameF()
{string symbol;//инструмент которым будем торговать
    //создаём имя файла
    symbol = Symbol();
    //---------------------------------------------------------------------------------------------------------------------------//
    FNLenUp = "length"+symbol+DoubleToStr(percent,4)+"up";
    //--------------------------------------------------------//
    FNSpeedUp = "speed"+symbol+DoubleToStr(percent,4)+"up";
    //--------------------------------------------------------//
    FNLenDown = "length"+symbol+DoubleToStr(percent,4)+"Down";
    //--------------------------------------------------------//
    FNSpeedDown = "speed"+symbol+DoubleToStr(percent,4)+"Down";
}
int ArrInsertInt(int& m[], int e, int p=-1) {
  int j, k=ArraySize(m);
   p=-1;

  ArrayResize(m, k+1);
  if (p>=0 && p<k) {
    for (j=k; j>p; j--) m[j]=m[j-1];
    m[p]=e;
  } else m[k]=e;

  return(k+1);
}

这里是脚本和其中一个文件

 
puschistic:

请帮助我找到脚本中的一个错误。

问题的实质是有4个文件,需要打开每个文件的值,将所有内容写入一个数组,并计算出平均最大和最小值,然后将其传递给另一个数组。

错误是这样的:当我调用GetFileData();,ArrInsertInt(InsertArr, MathAbs(StrToInteger(value));时,它开始添加数值,并没有再次写入。

这里是脚本和其中一个文件

该文件由于某种原因没有附在后面。以下是内容。

121
58
91
176
87
58
105
166
95
54
59
99
54
172
79
55
69
110
97
80
119
113
124
68
80
79
51
84
58
112
51
181

 
有没有可能在MetaEditor中看到一个变量,比如说用红色或其他颜色?
 
MQL4。如何创建一个只有一个输入字段的对话框
 
API, ...DLL
 

我试图比较SAR抛物线,现在的和以前的。但它不起作用,我已经挣扎了一天了。为什么这段代码不起作用?以下是脚本代码。

int start()
{
   double sar0 = iSAR(Symbol(), 0, 0.02, 0.2, 0);
   double sar2 = iSAR(Symbol(), 0, 0.02, 0.2, 1);
   sar0 = sar2;
      if (sar0 == sar2)                            //если написать sar0 = sar2,
         Alert("SAR проверяется");                 //то работает, как в коде ниже
   return;
}
这个变体是有效的。
int start()
{
   double sar0 = iSAR(Symbol(), 0, 0.02, 0.2, 0);
   double sar2 = iSAR(Symbol(), 0, 0.02, 0.2, 1);
         Alert("sar0 до присваивания: ", sar0, "sar2 до присваивания: ", sar2); 
   sar0 = sar2;
   //if (sar0 == sar2)                              //если написать sar0 = sar2,
      Alert("sar0 после присваивания: ", sar0, 
      "sar2 после присваивания: ", sar2);             //то работает.
   return;
}