MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 741

 
psyman :

Aşağıdaki kod için resimlerdeki hikaye:


Ağ bağlantısı kesildi, bir gösterge eklendi

Sonraki grafiğe geç


y2 değeri değişti, geri dönüyorum


y2 değerini döndürdü, ancak etiket "sol" değere göre hesaplandı! Fare tekerleğini döndürmek

Etiket geri geldi!

Bir komşu grafiğe geçiş anında, tüm etkin olmayan pencereler tam ekrana büyütülmez. Yani, aktif durumda olduğundan daha küçüktürler. Bu nedenle nesneler , grafiğin sol üst köşesinden daha küçük koordinatlar alır. Ardından, pencereyi etkinleştirdikten sonra, programın güncellenmesini beklemeniz veya güncellemeye zorlamanız gerekir. Tekerleği kaydırdığınızda ne olur.

 
psyman :

Aşağıdaki kod için resimlerdeki hikaye:


Ağ bağlantısı kesildi, bir gösterge eklendi

Sonraki grafiğe geç


y2 değeri değişti, geri dönüyorum


y2 değerini döndürdü, ancak etiket "sol" değere göre hesaplandı! Fare tekerleğini döndürmek

Etiket geri geldi!

ChartTimePriceToXY'yi atabilirsiniz
ve düz metin yazdırın ( OBJ_TEXT ) + 1-3 çubuk geleceğe, her zaman ihtiyacınız olan yerde olacaktır)

 
Taras Slobodyanik :

ChartTimePriceToXY'yi çöpe atabilirsiniz
ve düz metin yazdırın ( OBJ_TEXT ) + 1-3 çubuk geleceğe, her zaman ihtiyacınız olan yerde olacaktır)

Yalnızca çubukların sağa kaymasını kapatırsanız, metin pencerenin dışında olacaktır.

Fikir doğru, ancak görünüşe göre deneyim çok eksik.

 
Alexey Viktorov :

Yalnızca çubukların sağa kaymasını kapatırsanız, metin pencerenin dışında olacaktır.

Fikir doğru, ancak görünüşe göre deneyim çok eksik.

Peki, etiketin sağ tarafa bağlanması gerekiyorsa, grafikte en sağdaki çubuğu alıp üzerine çizim yapabilirsiniz.

 

Tünaydın .
Yeni işlevler çağrılırken bu verilerin sıfırlanmaması için Expert Advisor'da global tipte değişkenlerin nasıl oluşturulacağını söyleyebilir misiniz?

Değişken verilerini şu şekilde arayın:

 bool    GlobalVariableGet ( string    "name" , double "var"   ); // К примеру

O zaman işlemlere "var" eklenebilir.

Ve şu fonksiyon tarafından yaratılırlar:

 datetime    GlobalVariableSet ( 
   string   name,       // имя 
   double   value       // устанавлимое значение 
   );

Sadece her şeyi anlamaya çalışıyorum. Örnek yok, ancak aynı zamanda bir değer datetime ve ikincisi bool ise verilerin nasıl çalışacağı bana tam olarak açık değil. Hatalar olmayacak mı?

 
psyman :

Aşağıdaki kod için resimlerdeki hikaye:

Ağ bağlantısı kesildi, bir gösterge eklendi

Sonraki grafiğe geç

y2 değeri değişti, geri dönüyorum

y2 değerini döndürdü, ancak etiket "sol" değere göre hesaplandı! Fare tekerleğini döndürmek

Etiket geri geldi!

 //+------------------------------------------------------------------+
//|                                              !_clr_indicator.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property indicator_chart_window
#property indicator_plots 0

string objname= "Bid" ;
input color Bid_color = clrCrimson ;

//+------------------------------------------------------------------+
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
void OnDeinit ( const int reason) 
   { 
   ObjectDelete ( 0 ,objname);
   } 
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
   SetTXT();
   return (rates_total);
}

//+------------------------------------------------------------------+
void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam) 
{ 
   if (id== CHARTEVENT_CHART_CHANGE ) 
      SetTXT();
}

//+------------------------------------------------------------------+
void SetTXT() 
{
int       first_bar=( int ) ChartGetInteger ( 0 , CHART_FIRST_VISIBLE_BAR , 0 );
int       width_bar=( int ) ChartGetInteger ( 0 , CHART_WIDTH_IN_BARS , 0 );
double    label_price= iClose ( _Symbol , _Period , 0 );
datetime label_time= 0 ;

   if (width_bar>first_bar)
      label_time= iTime ( _Symbol , _Period , 1 )+(width_bar-first_bar)* PeriodSeconds ();
   else
      label_time= iTime ( _Symbol , _Period ,first_bar-width_bar+ 1 );

   if ( ObjectFind ( 0 ,objname)< 0 )
      {
       ObjectCreate ( 0 , objname, OBJ_TEXT , 0 , 0 , 0 );
       ObjectSetInteger ( 0 , objname, OBJPROP_FONTSIZE , 12 );
       ObjectSetInteger ( 0 , objname, OBJPROP_COLOR , Bid_color);
       ObjectSetString ( 0 , objname, OBJPROP_FONT , "Verdana" );
       ObjectSetInteger ( 0 ,objname, OBJPROP_ANCHOR , ANCHOR_RIGHT_UPPER );
       ObjectSetInteger ( 0 ,objname, OBJPROP_BACK , false );
       ObjectSetInteger ( 0 ,objname, OBJPROP_SELECTABLE , false );
      }
   
   ObjectSetString ( 0 ,objname, OBJPROP_TEXT , DoubleToString (label_price, _Digits - 1 )); 
   ObjectMove ( 0 ,objname, 0 ,label_time,label_price);
   
   ChartRedraw ();
}
 
Taras Slobodyanik :


Çok teşekkür ederim yarın iTime ve iClose'u nasıl değiştireceğimi düşüneceğim, belki XP'de oturuyorum.

 
Hepinize iyi günler!
Programcılar için soru.
Lütfen bana söyle!
Bazı brokerler, kar al fiyatı ve zararı durdur fiyatı olan bir piyasa emri açamazlar.

yalnızca bir OrderSend() işleviyle .

Veya daha doğrusu OrderSend() bir emir açacak ama stop ve kar fiyatları bu sırayla olmayacak.

Aşağıdaki kod satırlarındaki bu sipariş OrderModify() kullanılarak değiştirilmeli ve stop ve kar emirlerine eklenmelidir.


Öyleyse soru, alım veya satım işlevinde davayı kimin ve nasıl işlediği veya sigortaladığıdır.
örneğin, OrderSend() çalıştığında, ancak OrderModify() herhangi bir nedenle piyasada çalışmadığında
durmadan ve kâr etmeden açık bir emir olduğu ortaya çıktı mı?

Böyle bir duruma karşı nasıl sigorta yapılır ve/veya nasıl ele alınır?
Lütfen bana söyle.
Kelimelerle mümkündür, nerede okuyacağınızı kurcalayabilirsiniz veya yeterince harcadınız çünkü kod yatıyor

zaman ama bununla ilgili herhangi bir bilgi bulamıyorum.

Görünen o ki, başabaş fonksiyonu, fiyat kâra girse bile, bir miktar sigorta yapabilir.

ve eğer fiyat bir zarara girdiyse ve sadece durmak yoksa?

Cevabınız için şimdiden teşekkür ederiz!
 

Herkese merhaba!

Lütfen bana, Expert Advisor çalışırken özelliklerine giremediğimi söyler misiniz? Eskiden giderdim, şimdi özellikler açılmıyor. Terminali yeniden başlatmak bir kez yardımcı oldu, ancak sorun bir dakika sonra yeniden ortaya çıktı. Danışman taze, terminal de son zamanlarda çalışıyor. Danışmanın özellikleriyle ilgili sorun nedir?

Teşekkür ederim!

 
demonRDV :

Herkese merhaba!

Lütfen bana, Expert Advisor çalışırken özelliklerine giremediğimi söyler misiniz? Eskiden giderdim, şimdi özellikler açılmıyor. Terminali yeniden başlatmak bir kez yardımcı oldu, ancak sorun bir dakika sonra yeniden ortaya çıktı. Danışman taze, terminal de son zamanlarda çalışıyor. Danışmanın özellikleriyle ilgili sorun nedir?

Teşekkür ederim!

F7 kısayol tuşuna basın :-)

danışman simgesine tıklamak her zaman çalışmaz - ve simge diğer nesneler tarafından engellenebilir ve danışman mesaj kuyruğunu ve diğer 100500 nedeni yükler