[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 526

 
Pluton писал(а) >>

Per favore, consigliate quale formula è usata in questo indicatore, specialmente quella che si aggrappa al prezzo.


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

Il numero massimo in MT4 non è limitato, è determinato dal saldo del deposito o dalla società di intermediazione.


Prova questo script su una DEMO con un deposito di 5000000000.

File:
 
Si prega di consigliare il tester di strategia in MT4.
1. Quando provo lo stesso Expert Advisor con gli stessi parametri, ottengo risultati diversi. Perché?
2. La precisione della simulazione dipende fortemente dal parametro "qualità della simulazione" e qual è il valore minimo per una simulazione più o meno alta?
 
alex_treid >>:
подскажите на счет тестера стратегий в МТ4.
1. При тестировании одно и того же эксперта с одними и теми же параметрами получаются разные результаты. Почему?
2. сильно ли зависит точность моделирования от параметра "качество моделирования" и какое его минимальное значение для более менее качественного моделирования?

1. Probabilmente non l'intera storia delle citazioni, dopo aver superato il test. pompare l'intera storia.

2. Se EA usa la barra zero, il modello mod. tutti i tick.

 
Ciao a tutti. Proprio di recente, circa una settimana fa, ho iniziato a scrivere il mio primo codice EA per il mio TS e mi sono subito imbattuto in un problema. Non so come scoprire il nome breve dell'indicatore personalizzato. Il fatto che lo scriva nella sua finestra non aiuta - c'è la possibilità che sia scritto in russo e inglese, ma dice quanto segue: iP(aaRG)v.8<<Frame M5>> Ho messo questo nome nella linea:
double iPaaRG =iCustom(NULL, 0, "iP(aaRG)v.8<<Frame M5>>", 7, 1);
Ma l'indicatore non dà nessuna lettura ulteriore. Funziona bene scrivendo il suo valore nella finestra, ma nel mio programma mostra solo degli zeri. E c'è anche Pollon, che si comporta esattamente allo stesso modo.
Puoi dirmi cosa c'è che non va, per favore? Sotto... merda... Volevo darvi tutto il codice con i commenti, ma non ha funzionato... Ну, хотябы его часть:
____________________________________________________________________________________________________________________________________
//-------------------------------------------------------------- 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.
Прошу гуру, подскажите пожалуйста, что не так? Ниже... блин... хотел привести весь код с комментариями, да не вышло... Ну, хотябы его часть:
____________________________________________________________________________________________________________________________________

Dove sono gli indicatori?!

Come si può fare un pacchetto senza indicatori? =))

 
costy_ >>:

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

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

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


Non è possibile allocare un buffer separato per ogni pattern, perché il numero di pattern è molto più grande di 8......

Forse la stringa s dovrebbe essere messa da qualche altra parte? ..... O non funzionerà in linea di principio? .....

Per quanto riguarda CreatObject: se non usate un buffer per ogni modello, come potete dare a ogni modello un nome per ObjectCreat?
 
Chi può aiutare, forse qualcuno l'ha fatto? come sarebbe possibile fare diverse linee orizzontali dall'apertura giornaliera, per esempio 3 punti in alto e 3 punti in basso nell'indicatore? Non ho idea se sia possibile. Vi ringrazierò in anticipo

più l'indicatore dell'uomo gentile.
File:
 
   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--
      }  
Ciao!
Non so quale sia il problema, i valori non vengono resettati dal ciclo, o ho fatto un errore nel ciclo. Per favore, aiutatemi!
 
Azerus >>:


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

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

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

Oh, sei pigro, puoi farlo da solo =))

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);

Motivazione: