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

 
psyman :

hiçlik , bunu neden buraya yazıyorsun?

Alevde ayrı bir dal başlatın ve oradaki filleri dağıtın, şapkanızı çıkarın.

Bu yüzden hemen Moderatöre bundan bahsettim.

Sayın Moderatör, ticaret teorisini ayrı bir başlıkta tartışalım.

Moderatör buna karşı.

Muhtemelen Moderatörün kendi "ticaret teorisi" yoktur.

 
inter78 :

Merhaba! Ayrıca grafikler arasında geçiş yapmayı da soruyorum. 28 veya 30 çizelge açıldı. Bunları düşünceli bir şekilde etiketlerle değiştiriyorum ve duruma uygunsa pozisyonlar açıyorum. Parça 10 veya 20. Veya 5. Fark etmez. Geri kalanların müdahale etmesi önemlidir ve açık pozisyonlar hakkında bilgi yoktur. Global değişkenlere kimlik göndermeye çalıştı. Ancak tamamen farklı sayılar döndürür. Bana kimliğin büyük ve bozuk olduğunu açıkladılar. Bir dosya ile denedim. TXT'ye döner ve long'a dönüştürülmez. Kimliği koda manuel olarak girdim - işe yarıyor gibi görünüyor. Alanı kaydırıyorum ve istenen tablo açılıyor. Nasıl doğru yapılır?

Double ve long aynı uzunluğa sahiptir - 8 bayt.

Uzun bir süreyi ikiye katlamak (ve tersi) için "birlik" kullanabilirsiniz.


Örneğin:

 //+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   long id=ChartID();
   
   double X=LongToDouble(id);
   long    Y=DoubleToLong(X);
   
   Print( "id=" ,id, " X=" ,X, " Y=" ,Y);
  }


//+------------------------------------------------------------------+
union eightbytes
   {
   double    dbl;
   long      lng;
   } VALUE;

double LongToDouble( long value )
   {
   VALUE.lng= value ;
   return (VALUE.dbl);
   }

long DoubleToLong ( double value )
   {
   VALUE.dbl= value ;
   return (VALUE.lng);
   }
 
neverness :

Bu yüzden hemen Moderatöre bundan bahsettim.

Sayın Moderatör, ticaret teorisini ayrı bir başlıkta tartışalım.

Moderatör buna karşı.

Muhtemelen Moderatörün kendi "ticaret teorisi" yoktur.

Palyaço teorisyenlerinin dalındasın oraları çizmeyi seviyorlar, ne olduğu belli değil, neden olduğu da belli değil.

Ve forumda pek çok benzer konu var - en azından tartışın!

От теории к практике
От теории к практике
  • 2017.12.01
  • www.mql5.com
Добрый вечер, уважаемые трейдеры! Решил было на какое-то время покинуть форум, и сразу как-то скучно стало:)))) А просто читать, увы - неинтересно...
 
Taras Slobodyanik :

Double ve long aynı uzunluğa sahiptir - 8 bayt.

Uzun bir süreyi ikiye katlamak (ve tersi) için "birlik" kullanabilirsiniz.


Örneğin:

Afedersiniz Taras, global bir değişkene kimlik göndermek ve onu bozulma olmadan çıkarmak için bir kod parçası göndermek mümkün mü?
 
inter78 :
Afedersiniz Taras, global bir değişkene kimlik göndermek ve onu bozulma olmadan çıkarmak için bir kod parçası göndermek mümkün mü?

yani her şey hazır, sadece bir yazma/okuma eklemeniz gerekiyor

 string GVname= "gvName" ;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   //создаем временную глобальную переменную
   if (! GlobalVariableCheck (GVname))
       GlobalVariableTemp (GVname);
   
   long   id= ChartID ();
   
   //сохраняем long как double
   GV_Save(LongToDouble(id));
   
   //читаем double и переводим в long
   long   Y=DoubleToLong(GV_Read());
   
   Print ( "id=" ,id, " Y=" ,Y);
  }

//+------------------------------------------------------------------+
union eightbytes
   {
   double    dbl;
   long      lng;
   } VALUE;

double LongToDouble( long value)
   {
   VALUE.lng=value;
   return (VALUE.dbl);
   }

long DoubleToLong ( double value)
   {
   VALUE.dbl=value;
   return (VALUE.lng);
   }


//+------------------------------------------------------------------+
double GV_Read()
{
if (! GlobalVariableCheck (GVname))
   GlobalVariableTemp (GVname);
   
return ( GlobalVariableGet (GVname));
}
//+------------------------------------------------------------------+
void GV_Save( double value)
{
GlobalVariableSet (GVname, value);
}
 
Taras Slobodyanik :

yani her şey hazır, sadece bir yazma/okuma eklemeniz gerekiyor

Çok teşekkürler! Merak ediyorum, daha önce böyle bir gösterge yapmayı deneyen var mı? Ne kadar aradıysam da bulamadım. Bunun birçok kişinin ilgisini çekeceğini düşünüyorum.
 
Vitaly Muzichenko :

OnInit() içinde başlatma yapın

Hayır, mevcut çubukta sinyal vermiyor. Grafiğe eklendikten sonra gösterge her şeyi ilk kez hesapladıktan sonra _time değişkenini sıfırlamak mümkün olabilir.

Göstergenin her şeyi bir kez hesapladığını nasıl bilebilirim?
 
Ghabo :

Göstergeyi çizelgeye atıyorum ve... ALERT ama sinyal 5 bar ötede. Daha fazla çalışma sırasında beklendiği gibi bip sesi çıkarır.

Başlangıçta sinyal vermemesi için nasıl yapılır?

 if (М_А> 0.0 )  
{
if (time!= Time [ 0 ])
   {
    time= Time [ 0 ]; 
    AL( Symbol ()+ " " + Period ()+ " УХ ТЫ" , 2 ); //
   }
 }

AL() işlevinde, tüm olası bildirimler.

M_A nedir? Ne içerir ve verileri nereden alır?

Saati kontrol etmenin yanı sıra, mevcut çubuktaki sinyalin geçerliliğini kontrol etmeniz gerekir. Ve siz sadece M_A'nın değerini kontrol edin. Onu nereden alıyorsun?

 
Artyom Trishkin :

M_A nedir? Ne içerir ve verileri nereden alır?

Saati kontrol etmenin yanı sıra, mevcut çubuktaki sinyalin geçerliliğini kontrol etmeniz gerekir. Ve siz sadece M_A'nın değerini kontrol edin. Onu nereden alıyorsun?

gösterge diyorum.

М_А = NormalizeDouble ( iCustom ( NULL , 0 , "Morning_All_Best" , 0 ,i), Digits );

Geçerlilik nasıl kontrol edilir?

 
Ghabo :

gösterge diyorum.

Geçerlilik nasıl kontrol edilir?

1. Neden normalleştirme yapıyorsunuz? Bu, gösterge döngüsünde çalışmak için çok pahalı bir işlemdir ve burada gerekli değildir.

2. "Sıfırdan büyük" ne anlama geliyor? Bu özel gösterge hangi sinyalleri veriyor? Veri penceresinde (Ctrl+D) bu göstergenin tampon değerlerinde ne görüntüleniyor?