[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 526

 
Pluton писал(а)>>

请告知该指标使用的是哪种公式,特别是紧贴价格的公式。


采取2
附加的文件:
 
vasili >>:
Огромное спасибо costy.
Ну если пошла такая пьянка может еще с этим поможите:
Господа, подскажите как можно подсчитать ( а потом соответственно и вывести) максимально возможное количество ордеров ( всех видов ... включая и отложенные). Думал через marketinfo(), но там нет данного параметра.
Заранее благодарен.

MT4中的最大数量没有限制,它由存款余额或经纪公司决定。


在DEMO上试试这个脚本,存款为5000000000。

附加的文件:
 
请告知MT4中的策略测试器
1.当用同样的参数测试同一个专家顾问时,我得到了不同的结果。为什么?
2.模拟的准确性是否强烈地依赖于 "模拟质量 "参数,一个或多或少的高质量模拟的最小值是什么?
 
alex_treid >>:
подскажите на счет тестера стратегий в МТ4.
1. При тестировании одно и того же эксперта с одними и теми же параметрами получаются разные результаты. Почему?
2. сильно ли зависит точность моделирования от параметра "качество моделирования" и какое его минимальное значение для более менее качественного моделирования?

1.可能不是整个报价历史,在通过测试后。 抽出整个历史。

2.如果EA使用零条,则模型修改为所有的ticks。

 
大家好。就在最近,大约一个星期前,开始为我的TS写第一个EA代码,并立即遇到了一个问题。我不知道如何找出自定义指标的 短名称。他在自己的窗口中写的事实并没有帮助--有可能是用俄语和英语写的,但它说的是:iP(aaRG)v.8<<Frame M5>>我把这个名字放在行中:
double iPaaRG =iCustom(NULL, 0, "iP(aaRG)v.8<<Frame M5>>", 7, 1);
但是这个指标没有给出任何进一步的解读。它在其窗口中工作正常,但在我的程序中却只显示零。还有Pollon,它的行为方式也是如此。
你能告诉我出了什么问题吗?下面是...糟糕......。我想把所有带注释的代码给你,但它没有用......Ну, хотябы его часть:
____________________________________________________________________________________________________________________________________
//-------------------------------------------------------------- 14 --
   Pollon_0 =iCustom(NULL, 0, "Pollon", Pln_n, 0, 0);   // Значен. на нулевом баре
   Pollon_1 =iCustom(NULL, 0, "Pollon", Pln_n, 0, 1);   // Знач. на предыдущ. баре
   Ind_Pln=15;
   if(Pollon_0 >=Pollon_1)Pln_UP=1;                    // Индик. линия поднимается 
   if(Pollon_0 < Pollon_1)Pln_UP=0;                    // Индик. линия опускается
   if(Pollon > 0.0 && Pln_UP ==1)Ind_Pln=13;           // Pollon выше 0.0 и поднимается
   if(Pollon < 0.0 && Pln_UP ==0)Ind_Pln=14;           // Pollon ниже 0.0 и опускается
//-------------------------------------------------------------- 15 --
      Win_Pollon_new=0;
        {                                 // .. окно индикатора Pollon      
         ObjectDelete("Obj_Pollon");        // Удаление объекта      
         Create_Pollon(Win_Pollon_new);       // Создаём объект в нужном окне      
        }                                 // Изменяем текстовое описание:   
      ObjectSetText("Obj_Pollon",Text[Ind_Pln],10,"Courier New",Color[Ind_Pln]);
//-------------------------------------------------------------- 16 --
//-------------------------------------------------------------- 16 --
   iPRG_up =iCustom(NULL, 0, "iP(aaRG)v.8<<Для таймфрейма M5>>", 2, 1);   // Значен. верхн. линии на первом баре
   iPRG_dn =iCustom(NULL, 0, "iP(aaRG)v.8<<Для таймфрейма M5>>", 3, 1);   // Значен. нижн. линии на первом баре
   Ind_iPRG=18;
   if(iPaaRG < iPRG_dn)Ind_iPRG=16;                                       // iPaaRG ниже нижней линии. BUY
   if(iPaaRG > iPRG_up)Ind_iPRG=17;
//   Alert(iPRG_up, iPRG_dn, iPaaRG);                                       // iPaaRG выше верхней линии.SELL
//-------------------------------------------------------------- 17 --
      Win_iPRG_new=0;
        {                                   // .. окно индикатора iP(aaRG)      
         ObjectDelete("Obj_iPRG");          // Удаление объекта      
         Create_iPRG(Win_iPRG_new);       // Создаём объект в нужном окне      
        }                                   // Изменяем текстовое описание:   
      ObjectSetText("Obj_iPRG",Text[Ind_iPRG],10,"Courier New",Color[Ind_iPRG]);
//-------------------------------------------------------------- 18 --




//-------------------------------------------------------------- 18 --
      WindowRedraw();                     // Перерисовка изображения    
      return;                             // Выход из пользоват. функции  
     }
//-------------------------------------------------------------- 19 --

.............................................................................................

//-------------------------------------------------------------- 23 --
int Create_Pollon(int Win)                         // Пользовательс ф-ия
  {                                              // ..создания объекта
   ObjectCreate("Obj_Pollon",OBJ_LABEL, Win, 0,0); // Создание объекта   
   ObjectSet("Obj_Pollon", OBJPROP_CORNER, 1);     // Привязка к углу   
   ObjectSet("Obj_Pollon", OBJPROP_XDISTANCE, 6);  // Координата Х
 
      ObjectSet("Obj_Pollon",OBJPROP_YDISTANCE, 75);// Координата Y   

   return;                                       // Выход из польз.ф-ии  
  }
//-------------------------------------------------------------- 24 --
//-------------------------------------------------------------- 24 --
int Create_iPRG(int Win)                         // Пользовательс ф-ия
  {                                              // ..создания объекта
   ObjectCreate("Obj_iPRG",OBJ_LABEL, Win, 0,0); // Создание объекта   
   ObjectSet("Obj_iPRG", OBJPROP_CORNER, 1);     // Привязка к углу   
   ObjectSet("Obj_iPRG", OBJPROP_XDISTANCE, 6);  // Координата Х

      ObjectSet("Obj_iPRG",OBJPROP_YDISTANCE, 90);// Координата Y   

   return;                                       // Выход из польз.ф-ии  
  }
//-------------------------------------------------------------- 25 --
 
artmedia70 >>:
Привет всем. Совсем недавно, где-то с недельку назад занялся написанием своего первого кода советника по моей ТС и моментально столкнулся с проблемой. Помогите, плиз, никак не могу найти как мне узнать короткое имя пользовательского индикатора. То, что он его в своём окне пишет, это не помогает - есть вероятность, что там и по-русски и по-английски написано, а написано вот что: iP(aaRG)v.8<<Для таймфрейма М5>> Я вписываю это имя в строку:
double iPaaRG =iCustom(NULL, 0, "iP(aaRG)v.8<<Для таймфрейма M5>>", 7, 1);
Но индикатор далее по тексту программы не выдаёт никаких показаний. В своём окне он исправно пишет своё значение, у меня же в программе выдаёт одни нули. И есть ещё точно так же себя ведущий: Pollon.
Прошу гуру, подскажите пожалуйста, что не так? Ниже... блин... хотел привести весь код с комментариями, да не вышло... Ну, хотябы его часть:
____________________________________________________________________________________________________________________________________

指标在哪里?

没有指标,你怎么能做捆绑式的工作? =))

 
costy_ >>:

Функц int init() выполняется один раз перед int start(), т.е. присвоило в всплывающей подсказке s пустое значение и передало управление функ. старт.

Как сделать ... используйте для каждого патерна отдельный индик. буфер (до 8) и присвойте каждому свою всплывающую подсказку,

или не пользуйтесь буферами а пользуйтесь ObjectCreate( имя патерна,0, OBJ_TEXT (OBJ_ARROW) ...


不可能为每个图案分配一个单独的缓冲区,因为图案的数量远远大于8......。

也许字符串s应该放在其他地方?.....还是原则上不可行?.....

关于CreatObject:如果你不为每个模式使用一个缓冲区,你怎么能为ObjectCreat给每个模式起一个名字?
 
谁能提供帮助,也许有人已经做到了?如何才能从日线开盘中做出几条水平线,例如指标中的3点上升和3点下降?我不知道这是否可能。我将提前感谢你,

,加上好心人的指标。
附加的文件:
 
   int i, Counted_bars=IndicatorCounted();
   i=Bars-Counted_bars-1;

      while(i>=1)
      {
      for(int a=0; a>25; a++)
      {
       CCM=iCCI(NULL,0,PerCCI,PRICE_TYPICAL,a);
       if(CCM>0 && CCM>max)CCM=max;//max of old bars
       if(CCM<0 && CCM<min)CCM=min;//min of old bars
      }
      Использую min и max>>
      ....
      i--
      }  
你好!
我不知道问题出在哪里,是数值没有从循环中复位,还是我在循环中犯了一个错误。请帮助我们!
 
Azerus >>:


Выделить под каждый паттерн отдельный буфер - не получится, т.к. количество паттернов гораздо больше 8 штук......

Может быть следует string s засунуть в другое место?..... Или это не будет работать в принципе?.....

По поводу CreatObject: если не использовать буфер под каждый паттрен, то как для каждого паттерна задать имя для ObjectCreat?

哦,你很懒,你可以自己做 =))。

int i,ii;
string name_object[50001];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()  {
  for (  ii=0; ii<=50000; ii++)name_object[ii]="Trende_"+MathRand()+ii;
   return(0);
  }
//+------------------------------------------------------------------+
int deinit()  {
  for (  ii=0; ii<=50000; ii++)ObjectDelete(name_object[ii]);Comment("");
   return(0);
  }
int start()  {


           for ( ii=0; ii<=50000; ii++)
           if( ObjectFind(name_object[ii])==-1)break;
               ObjectCreate(name_object[ii],OBJ_TEXT,0,Time[i-PERIOD_D1/Period()/2],iOpen(0,PERIOD_D1,iBarShift(0, PERIOD_D1, Time[i])));
               ObjectSetText(name_object[ii],А СЮДЫТЬ ТЕКСТ ИЗ БУФЕРА ДЛЯ УДОБСТВА,font_size, font_name, text_color);