MT5 için dilekler - sayfa 58

 
Urain :

Kolaylık dışında, artık alakalı değil.

 int scale =( int ) ChartGetInteger (chart_id, CHART_SCALE );
int pointer_per_bar= pow ( 2 ,scale); // количество пикселей на бар
// остальное можно высчитать из первого видимого бара, и ширины графика в пикселях.

Ö! Teşekkürler Nikolay! Sonuna kadar bitirebilir misin? Eh, yani 4 özel işlevin uygulanmasından önce:

 int   ChartGetX( datetime T);

int   ChartGetY( double P);

datetime ChartGetTime( int X);

double ChartGetPrice( int Y);

Görünüşe göre zaten solitaire almışsın ve uzun bir süre ortalığı karıştırmam gerekecek. Yaparsanız çok minnettar olurum.

 

Renat :

Birden fazla Uzman Danışmanı tek bir sembolle takas etmek saçmalıktır.

Bu, bir tabloya birkaç gösterge yerleştirme yeteneğinden daha saçma değil.

MT4'te Uzman Danışmanlardan herhangi bir karmaşıklıktaki yapıları farenin tek bir tıklamasıyla oluşturma, onlardan herhangi bir portföy oluşturma olasılığı muazzamdır.

Bu özelliği ilk beşte yapmak için, bir ticaret hesabının sanal olarak alt hesaplara bölünmesini destekleyen bir ticaret sınıfı yapın.

veya terminalde mevcut karakterlere dayalı olarak kendi sanal karakterinizi ekleme yeteneği yaratın.

 

belki yeni MT5 özelliklerinin gerisinde kalıyorum, ancak grafikleri çubuklara ve fiyata göre değil X ve Y koordinatlarına göre görüntüleyebilmek istiyorum, zaten böyle bir olasılık varsa, lütfen bana söyleyin, yoksa böyle bir olasılık, o zaman bazı XY_Symbol sembolleri/araçları ile grafiksel bir OBJ_CHART nesnesi kullanarak bunu uygulamanın zor olmadığını düşünüyorum.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
MetaDriver :

Ö! Teşekkürler Nikolay! Sonuna kadar bitirebilir misin? Eh, yani 4 özel işlevin uygulanmasından önce:

Görünüşe göre zaten solitaire almışsın ve uzun bir süre ortalığı karıştırmam gerekecek. Eğer yaparsanız çok minnettar olurum.

Bunun gibi bir yerde. Farklı bir yakalama açısı gerekiyorsa, bu, pencerenin piksel boyutlarından yeniden hesaplanabilir.

 //+------------------------------------------------------------------+
//| Преобразование координат. Верхний левый угол привязки            |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| time to X                                                        |
//+------------------------------------------------------------------+
int WindowGetX( long chart_id, datetime T)
  {
   datetime temp[]; int bar=( int ) ChartGetInteger (chart_id, CHART_FIRST_VISIBLE_BAR );
   CopyTime ( ChartSymbol (chart_id), ChartPeriod (chart_id),bar, 1 ,temp);
   return (( int ) NormalizeDouble (
          ((T-temp[ 0 ])/( double ) PeriodSeconds ( ChartPeriod (chart_id)))*
           pow ( 2 , ChartGetInteger (chart_id, CHART_SCALE )), 0 ));
  };
//+------------------------------------------------------------------+
//| price to Y                                                       |
//+------------------------------------------------------------------+
int WindowGetY( long chart_id, double P)
  {
   return (( int )(( ChartGetDouble (chart_id, CHART_PRICE_MAX )-P)*
          ( ChartGetInteger (chart_id, CHART_HEIGHT_IN_PIXELS )/
          ( ChartGetDouble (chart_id, CHART_PRICE_MAX )- ChartGetDouble (chart_id, CHART_PRICE_MIN )))));
  };
//+------------------------------------------------------------------+
//| X to time                                                        |
//+------------------------------------------------------------------+
datetime WindowGetTime( long chart_id, int X)
  {
   datetime temp[]; int bar=( int ) ChartGetInteger (chart_id, CHART_FIRST_VISIBLE_BAR );
   CopyTime ( ChartSymbol (chart_id), ChartPeriod (chart_id),bar, 1 ,temp);
   return (( datetime )(temp[ 0 ]+
          (X/( double ) pow ( 2 , ChartGetInteger (chart_id, CHART_SCALE )))*
           PeriodSeconds ( ChartPeriod (chart_id))));
  };
//+------------------------------------------------------------------+
//| Y to price                                                       |
//+------------------------------------------------------------------+
double WindowGetPrice( long chart_id, int Y)
  {
   return ( ChartGetDouble (chart_id, CHART_PRICE_MAX )-Y/
          ( ChartGetInteger (chart_id, CHART_HEIGHT_IN_PIXELS )/
           ChartGetDouble (chart_id, CHART_PRICE_MAX )- ChartGetDouble (chart_id, CHART_PRICE_MIN )));
  };

Çağrı örneği

 void OnStart ()
  {
   datetime T= StringToTime ( "2011.02.25 18:12" );
   double P= 1.37831 ;
   Object( ChartID (),T,P);
  }
//+------------------------------------------------------------------+
void Object( long chart_id, datetime T, double P)
  {
   int x=WindowGetX(chart_id,T);
   int y=WindowGetY(chart_id,P);
   string name= "Button" ;
   if ( ObjectCreate (chart_id,name, OBJ_BUTTON , 0 , 0 , 0 , 0 , 0 ))
     { //---
       ObjectSetInteger (chart_id,name, OBJPROP_BACK , 1 );
       ObjectSetInteger (chart_id,name, OBJPROP_SELECTABLE , false );
       ObjectSetInteger (chart_id,name, OBJPROP_STATE , false );
       //--- привяжем кнопку к правому верхнему углу графика
       ObjectSetInteger (chart_id,name, OBJPROP_CORNER , CORNER_LEFT_UPPER );
       //--- теперь настроим свойства объекта      
       ObjectSetInteger (chart_id,name, OBJPROP_XSIZE , 40 );
       ObjectSetInteger (chart_id,name, OBJPROP_YSIZE , 40 );
       ObjectSetInteger (chart_id,name, OBJPROP_BGCOLOR , Silver );
       ObjectSetInteger (chart_id,name, OBJPROP_XDISTANCE ,x);
       ObjectSetInteger (chart_id,name, OBJPROP_YDISTANCE ,y);
     }
  }
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки - Документация по MQL5
 
Tekrar etsem de bu fonksiyonların standart olması daha iyi olur . O zaman sadece bu konuyu okuyanlar değil, dilin tüm kullanıcıları onlar hakkında bilgi sahibi olacak.
 
Gönderiyi kodla düzeltti, ayrı işlevler (sınıfsız) olarak tanımladı ve ciltleme açısını değiştirdi.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки - Документация по MQL5
 
Urain :
Tekrar etsem de bu fonksiyonların standart olması daha iyi olur . O zaman sadece bu konuyu okuyanlar değil, dilin tüm kullanıcıları onlar hakkında bilgi sahibi olacak.

Teşekkür ederim!
 
MetaDriver :
Teşekkür ederim!
Kontroller koyun, aksi takdirde bazen veri olmaz ve sıfıra bölme elde edilir.
 

Fonksiyonun standart uygulamasını görmek istiyorum belirli bir zamanda arama çubuğu numarası .

Şimdi bunu CArrayLong aracılığıyla uyguluyorum. Ancak aynı zamanda, zaten grafiğin kendisinde bulunan bir grup veriyi yüklemeniz gerekir. Bu, aslında, hafızayı çoğaltmak içindir. Standart formda her şeyin çok daha hızlı çalışacağını düşünüyorum.

 
Urain :
Kontroller koyun, aksi takdirde bazen veri olmaz ve sıfıra bölme olur.
TAMAM.