KimIV的有用功能 - 页 105

 
zennon:
MovingInWL()函数只是浏览所有未结头寸,而不考虑输入过滤器sy,op,mn。这对所附的例子EA(第55页)也是如此。
它经历了什么? 重置止损,并将所有内容发送到Modiforder函数中。
 

对不懂的人的帮助。

还有 "来自KimIV的非常有用的功能",虽然不是来自这个主题--读取INI文件

KimIV inluder的片段(足以编译,但不是全部--为了可读性)。

//+------------------------------------------------------------------+
//|                                                     IniFiles.mqh |
//|                                           Ким Игорь В. aka KimIV |
//|                                              http://www.kimiv.ru |
//|   25.04.2006  Библиотека функций для работы с INI-файлами.       |
//+------------------------------------------------------------------+
#property library
#import "kernel32.dll"
  int GetPrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string Default,        // Значение по умолчанию
        string ReturnedString, // Возвращаемое значение параметра
        int    nSize,          // Размер буфера под значение параметра
        string FileName);      // Полное имя файла
  int WritePrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string sString,        // Записываемое значение параметра
        string FileName);      // Полное имя файла
#import
//+------------------------------------------------------------------+
//| Параметры:                                                       |
//|   FileName    - полное имя файла                                 |
//|   SectionName - наименование секции                              |
//|   KeyName     - наименование параметра                           |
//|   Default     - значение параметра по умолчанию                  |
//+------------------------------------------------------------------+
string ReadIniString(string FileName, string SectionName, string KeyName, 
                     string Default = "")
  {
   string ReturnedString = "";
   int nValue = GetPrivateProfileStringA(SectionName, KeyName, Default, 
                                          ReturnedString, 255, FileName);
   if(nValue > 0)
       return(ReturnedString);
   else 
       return(Default);
  }

调用函数来读取INI文件的脚本

#include <IniFiles.mqh>
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
  string strPair = "";
  string strTradeType = "";
  string Path = "C:\\TestIni";
  string Section = "TestSection";
  string strAction = ReadIniString(Path, Section, "Action");
  if(strAction == "Open")
  {
   strPair = ReadIniString(Path, Section, "Pair", "");
   Print(
         "Пара =   ", strPair
         );
   strTradeType = ReadIniString(Path, Section, "TradeType", "");
   Print("Акция ",
         "Пара =   ", strPair,
         "Тип =    ", strTradeType
         );
  }
  else
   Print("Действо не найдено");
   
//----
   return(0);
  }

INI文件本身

[TestSection]
Action=Open
Pair=EURUSD
TradeType=Buy
Volume=-0.06

我们不喜欢的是日志中的一个片段

12:49:14 Test IniFiles AUDUSD,H1: Пара =   EURUSD
12:49:14 Test IniFiles AUDUSD,H1: Акция Пара =   BuyТип =    Buy

问题是为什么?功能似乎描述得很正确。当我读取(所有调用后),然后打印双倍(Volume),所有的变量都变成了-0.06

Bild 225.

 
KimIV:

ArrayAvg()函数。

该函数返回数组元素的平均算数。

    for (i=0; i<k; i++) s+=x[i];
    if (k>0) s/=k;
    • x- 一个双数 类型的元素数组。
    为什么不使用iMA?
     
    KimIV:

    CorrectTF()函数。

    将输入参数拟合到最接近的 有效时间范围,并返回其值。
      if (TimeFrame>=PERIOD_M5  && TimeFrame<PERIOD_M15) return(PERIOD_M5);
      if (TimeFrame>=PERIOD_M15 && TimeFrame<PERIOD_M30) return(PERIOD_M15);

    14岁不是比5岁更接近于15岁吗?

    例如,我为时钟输入了50,而不是60。嗯...我有点错过了。

    并且该函数将返回30。 酷:)

     
    eddy:

    14不是比5更接近15吗? 而且函数将返回30。)

    它的工作原理很明确: TF之间的 任何东西都被较小的 TF的值所取代。
    如果你不喜欢它,请公布你的规则和你的代码。
     
    我理解代码中的规则,但代码描述中有一个不同的规则
     
    KimIV:

    GetExtremumZZZPrice()函数。

    该函数搜索标准自定义ZigZag 指标的极值并返回其价格水平。该函数接受以下可选参数。

    • sy- 仪器的名称。""NULL- 当前符号。默认值为NULL
    • tf- 时间框架。默认值为0--当前符号。
    • ne- 极端数字。0-最后一次,1-上一次,2-上一次,等等。
    • dp,dv,bs- ZigZaga参数:ExtDepth, ExtDeviation, ExtBackstep。


    我想使用这个函数,但遇到了以下情况:当一个新的极值出现时,价格水平并没有立即改变,而是在一段时间内保持不变。在测试过程中,它使我感到不安。如何解决这个问题?

     
    请告诉我所有函数的清单在哪里,我想有一个计算连续亏损平仓 函数--你需要它来计算马丁格尔。
     
    eddy:
    我理解代码中的规则,但代码描述中有一个不同的规则
    谢谢你!我纠正了描述...(在我自己的代码中...谁在乎呢,也要改正)))。