Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1304

 
Николай К :

Lütfen söyle. İşte o giriş:

var1=(var<10)?1:0;

Ne anlama gelir, nasıl yorumlanır, uygulamalar. Seçenekler.

Belgeleri okuyun.

Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
  • www.mql5.com
Условный оператор ?: - Операторы - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Николай К :

Lütfen söyle. İşte o giriş:

var1=(var<10)?1:0;

Ne anlama gelir, nasıl yorumlanır, uygulamalar. Seçenekler.

var<10 = true ise, var1 = 1
aksi halde var1 = 0;

 

Hey! ! ! Lütfen söyleyin, MQL4 Terminalinde OOP öğeleriyle (CLASS) MQL5'te yazılan kod çalışmıyor mu? İçinde sınıflar bulunan bir programı derlemeye çalıştığınızda, sınıf yöntemlerini çağırırken geçirilen parametrelerde hatalar atar. Ancak sınıfın kendisi 4. editörde hatasız olarak derlenir.


 

Merhaba. Yardım!

Göstergenin yatay seviyelerinin değeri Expert Advisor'a nasıl iletilir?

***

 

MQL5'teki gösterge tutamacı OnInit'te oluşturulmalıdır ZORUNLU - ve bu şekilde BİR KEZ oluşturulur. Düzeltmeniz gereken ilk şey bu.

 
Vladimir. OnInit() içinde oluşturuldu. EA göstergeyi görür. Render yaparken parametreleri doğru aktarır, çizer. Ticaret yapmak istemiyor musun?
 
Oleg Kolesov :
Vladimir. OnInit() içinde oluşturuldu. EA göstergeyi görür. Render yaparken parametreleri doğru aktarır, çizer. Ticaret yapmak istemiyor musun?

Lütfen kodu doğru yapıştırın .

 
//+------------------------------------------------------------------+
//|  Настраиваемые параметры                                         |
//+------------------------------------------------------------------+
input string Expert_Title="Exp_Tangents2";                        // The name of the EA
input int Period1=29;                                             // Period1
input int Period2=145;                                            // Period2
input int Period3=609;                                            // Period3
input double level1=46.0;                                         //                                    
input double level2=22.0;                                         //
input double level3=0.0;                                          //
input double level4=-22.0;                                        //
input double level5=-46.0;                                        //
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
// получаем хэндл индикатора Tangents
   HLHandle=iCustom(NULL,0,"Examples\\Tangents2",Period1,Period2,
                      Period3,level1,level2,level3,level4,level5);
// если хэндл неверный
   if(HLHandle<0)
     {
      Alert("Ошибка создания хэнла индикатора Tangents2 - ошибка: ",GetLastError(),"!!");
      return(-1);
     }
   }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//+---------------------------------------------------------------------+
//| Копируем значения индикаторов в массивы, используя хэндлы индикатора
//+---------------------------------------------------------------------+
   if(CopyBuffer(HLHandle,0,0,3,L1)<0 || CopyBuffer(HLHandle,1,0,3,L2)<0
      || CopyBuffer(HLHandle,2,0,3,L3)<0)
     {
      Alert("Ошибка копирования буферов хэндла индикатора Tangents2 - ошибка:",GetLastError(),"!!");
      return;
     }
  }
//+------------------------------------------------------------------+
//|  Проверяет условия на покупку                                    |
//+------------------------------------------------------------------+
bool checkBuy()
  {
   bool dobuy = false;
   if(L2[2]<level1 && L2[1]>level1 && L3[2]<level1 && L3[1]>level1 && (L1[1]>level1 || L1[1]<level5))
           {
            dobuy = true;
           }
   return(dobuy);
  }
 
Oleg Kolesov :

Neden bir şeyi '0' arabelleğinden iki kez kopyalayasınız?

 
Oleg Kolesov :

ArraySetAsSeries (***,true) kullanarak kopyaladığınız dizileri çevirmeyi unuttunuz mu?