Ошибки, баги, вопросы - страница 66

 
Interesting:


Сейчас, основное неудобство это, то, что MQ в любом случае создают счета только по USD и с плечом 100, а к пример Альпари только с плечом в 500...

На нашем демо-сервере уже есть мультивалютные демо-счета с большим выбором кредитного плеча:

 

 

Инсталлируйте терминал заново с обновленного дистрибутива: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe

 
Renat:

На нашем демо-сервере уже есть мультивалютные демо-счета с большим выбором кредитного плеча:

 Инсталлируйте терминал заново с обновленного дистрибутива: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe

Странно, может быть я уже совсем того....


Выбор сервера


Выбор типа счета


Выбор размера плеча

PS

Это на 294 релизе, недели не прошло как ставил...

 
Interesting:

Странно, может быть я уже совсем того....

Просто скачайте дистрибутив заново - он был обновлен.

Начальные условия для регистраций демо-счетов задаются именно в лейбле дистрибутива и не обновляются при апдейтах.

 
Renat:

Просто скачайте дистрибутив заново - он был обновлен.

Начальные условия для регистраций демо-счетов задаются именно в лейбле дистрибутива и не обновляются при апдейтах.

Спасибо, обновил поверх прежнего релиза, все ОК...
 

Подскажите как получить 2 экстремума зигзага? Делаю так:

int zzHandle;     // хэндл индикатора ZigZag
double zzVal[];   // динамические массивы для хранения численных значений индикатора ZigZag
double zz1, zz2;  // значения цены 1-го и 2-го зигзага

ArraySetAsSeries(zzVal,true);
CopyBuffer(zzHandle,0,0,50,zzVal); // Cкопировали значения индикатора в массив

int ke=0;
for (int i=1;i<50;i++)
{
if (zzVal[i]!=0)
{
   zz1=zzVal[i];
   ke++;
}
if (ke>1) zz2=zzVal[i];
}  

Примеров куча а разобраться не получается пока.

//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает экстремум ЗигЗага по его номеру.                    |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    tf - таймфрейм                  (      0     - текущий ТФ)              |
//|    ne - номер экстремума           (      0     - последний)               |
//|    dp - ExtDepth                                                           |
//|    dv - ExtDeviation                                                       |
//|    bs - ExtBackstep                                                        |
//+----------------------------------------------------------------------------+
double GetExtremumZZPrice(string sy="", int tf=0, int ne=0, int dp=12, int dv=5, int bs=3) {
  if (sy=="" || sy=="0") sy=Symbol();
  double zz;
  int    i, k=iBars(sy, tf), ke=0;

  for (i=0; i<k; i++) {
    zz=iCustom(sy, tf, "ZigZag", dp, dv, bs, 0, i);
    if (zz!=0) {
      ke++;
      if (ke>ne) return(zz);
    }
  }
  Print("GetExtremumZZPrice(): Экстремум ЗигЗага номер ",ne," не найден");
  return(0);
=================================================================
double ZZ, arr[7];
int i=0, sh=0;
  while (sh<1000)
   {
    if (iCustom(NULL,0,"ZigZag",12,5,3,0,sh)!=0)
     {
      arr[i]=iCustom(NULL,0,"ZigZag",12,5,3,0,sh);
      Alert("arr[",i+"]=",arr[i]+" Период= "+Period());
      i++;
     }
    if (i==7) return(0);
  sh++;
   }
=================================================================
double // экстремумы Зиг-Зага
  y3=0, //предпоследнего экстремума
   y2=0,//значение последего экстремума
    y1=0,//тек. экстр.
     y0,//кончик посл. луча  
     zz;    //кончик 3-го экстр
int    x3, x2, x1, sh=1;// номера баров  
   double stop;
// Comment(zz,"_",y1,"_",y2,"_",y3);
  y0=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, 1);
  
//=============================================================================
  // Берём три экстремума Зиг-Зага
   while (y3==0)
      {
      zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
      if (zz!=0 && zz!=EMPTY_VALUE)
         {
         if      (y1==0) { x1=sh; y1=zz; }
         else if (y2==0) { x2=sh; y2=zz; }
         else if (y3==0) { x3=sh; y3=zz; }
         }
      sh++;
    //----- Вывод информации на экран -----------------------------------------------
string info="";
string on_off="---------------------------------------------------"+  "\r\n";
//if (BUY)     on_off=StringConcatenate  (on_off,"Сделки BUY разрешены ", "\r\n");
//else         on_off=StringConcatenate (on_off,"Сделки BUY - отключ. ","\r\n");
//if (SELL)    on_off=StringConcatenate (on_off,"Сделки SELL разрешены ","\r\n");
//else         on_off=StringConcatenate (on_off,"Сделки SELL - отключ. ","\r\n");
on_off=StringConcatenate (on_off,"Экстремум= ",y1," на ",x1," баре","\r\n");
on_off=StringConcatenate (on_off,"Экстремум= ",y2," на ",x2," баре","\r\n");
info=StringConcatenate(info,on_off,"\r\n");
info=StringConcatenate(info,"\r\n");
Comment(info);    
//-----------------------------------------------                
                
      } // while (y3==0)      
//=================================================================================    
double zz[2]={0,0};
int bzz[2]={0,0};
int i=0;
int b=0;
while(i<1 && b<Bars-1)
{
   double u=iCustom(NULL,0,..,b); // не знаю с какого ZZ ищем узлы
   if(u!=EMPTY_VALUE)
   {
      zz[i]=u;
      bzz[i]=b;
      i++;
   }
   b++;
}
// в zz[0] и zz[1] имеем цены двух узлов
// в bzz[0] и bzz[1] имеем номера баров двух узлов
===============================================================
 
Спасибо за расширение градаций кредитного плеча.
 
Погодите-ка... Я, конечно, в этом деле нуб, могу завалить тривиальными вопросами, но всё же... Если планируется сделать живую визуализацию сделок на Тестере при прогоне (как в MT4), то доступна ли возможность визуализировать таким же образом, скажем, автоматические скриптовые графические построения? Пока о Тестере я слышал только как об численном обработчике и примитивном визуальном индикаторе открытия/закрытия сделок. А вот как насчёт живого рисования/удаления графических объектов во время тестовых прогонов?
 

Сделал!

double zz[2]={0,0};
int zzHandle;     // хэндл индикатора ZigZag
double zzVal[];   // динамические массивы для хранения численных значений индикатора ZigZag
//--- Получить хэндл индикатора ZigZag
zzHandle=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,PRICE_CLOSE);  //Расчет индикатора ZigZag
ArraySetAsSeries(zzVal,true);
CopyBuffer(zzHandle,0,0,50,zzVal);// Cкопировали значения индикатора в массив
// Ищем ближайший экстремум
int a =0;
for (int i=1;i<50;i++)
{
if (zzVal[i]!=0)
{
     if(a<2)
      {
       zz[a]=zzVal[i];
       a++;
      }
    }
}
}  
 
AM2:

Подскажите как получить 2 экстремума зигзага? Делаю так:

Примеров куча а разобраться не получается пока.

Есть же пример получения 20 последних экстремумов - смотрите пример к разделу Способы привязки объектов
 
Хочется выбирать  установку x64 или x32 bit версию терминала.
Причина обращения: