Hatalar, hatalar, sorular - sayfa 2964

 
Roman :

Yapıyı bir değişkenle değiştirin))

Geçmiyor.

 
fxsaber :

Geçmiyor.

Expert Advisor'daki işlevi içe aktarmayı unuttunuz mu?
Örneği yapı için güncelledim, orada pek bir yanlışlık yoktu.
Genel olarak, bir yapıyla çalışıyorsanız, bir yapı nesnesini global veya yerel olarak en iyi nasıl bildireceğinizi düşünün.
Ve bir değişken için, tüm bunlara gerek yok, sadece değişkeni döndürüyoruz ve hepsi bu.

Документация по MQL5: Основы языка / Препроцессор / Импорт функций (#import)
Документация по MQL5: Основы языка / Препроцессор / Импорт функций (#import)
  • www.mql5.com
Импорт функций (#import) - Препроцессор - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Roman :

Expert Advisor'daki işlevi içe aktarmayı unuttunuz mu?

Fikrinize göre gösterge ve danışmanın kaynağını verebilir misiniz, veremez misiniz?

 
fxsaber :

Fikrinize göre gösterge ve danışmanın kaynağını verebilir misiniz, veremez misiniz?

Evet, garip. mql4'teki işlevler için dışa aktarma, bir nedenden dolayı çalışmak istemiyor.
Kütüphaneden veya göstergeden sonuç sıfırdır. Bağımlılıklarda olmasına rağmen, işlevler görünür.
Kitaplık örneği

 #property library
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

double value = 0.0 ;

//+------------------------------------------------------------------+
//| My function                                                      |
//+------------------------------------------------------------------+
double SetValue( double v) export
{
   value = v;    
   return (value);
}

//+------------------------------------------------------------------+
double GetValue( void ) export
{
   return (value);
}
//+------------------------------------------------------------------+

Ayar göstergesi

 #property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property indicator_separate_window

#import "Lib.ex4"
   double SetValue( double v);
   double GetValue( void );
#import

MqlTick tick;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{

   return ( INIT_SUCCEEDED );
}

void OnDeinit ( const int reason)
{
   Comment ( "" );
}
  
//+------------------------------------------------------------------+
//| 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[])
{
   
   SymbolInfoTick ( NULL , tick);
   SetValue(tick.bid);
   
   //Comment((string)GetValue());   
   
   return (rates_total);
}
//+------------------------------------------------------------------+

Bir fonksiyon aracılığıyla bir değer alması gereken bir uzman, ancak bu olmaz

 #property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

#import "Lib.ex4"
   double GetValue( void );
#import

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
{
   EventSetMillisecondTimer ( 10 );
   return ( INIT_SUCCEEDED );
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
   Comment ( "" );
   EventKillTimer ();
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{
}

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
{
   double bid = GetValue();
   
   Comment ( "\r\nЭксперт получил значение из индикатора = " +( string )bid);
   //ChartRedraw();

}
//+------------------------------------------------------------------+
 
fxsaber :

Bunun aracılığıyla göstergeden keneler gönderirim: sparam MqlTick, lparam - kene numarası içerir.

OnChartEvent'teki Uzman Danışman bu işaretleri yakalar. Ve şimdi yakalanan kenenin en alakalı olup olmadığını anlaması gerekiyor mu? Onlar. tik sırası var mı yoksa boş mu?

Bunu yapmak için, gösterge tarafından gönderilen en son tick'in numarasını (görev bu numarayı okumaktır) okur. Yakalanan kene aynı numaraya sahipse sıra boştur ve bir grup kene devreye alınabilir.


OnTick işlemi sırasında, herhangi bir OrderSend freninden sonra, göstergenin daha fazla tick göndermediğinden emin olmanız gerekir. Bunu yapmak için, göstergedeki sayıyı tekrar okumanız gerekir. Ve bir OnTick'in yürütülmesi için bu tür yüzlerce kontrol olabilir. Bu yüzden hızlı okumanız gerekiyor.

EA hala CopyTicks aracılığıyla onay alıyorsa, neden kuyruğun boş olduğunu bilmesi gerekiyor?

Olayların her biri için çalışmasına izin verin ve halihazırda işlenmiş olandan daha az zamanı olanları atlayın.

 
Andrey Khatimlianskii :

EA hala CopyTicks aracılığıyla onay alıyorsa, neden kuyruğun boş olduğunu bilmesi gerekiyor?

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

fxsaber , 2021.02.17 21:26

Lütfen görev hakkındaki düşüncelerinizi paylaşın ( MT4 ):

Gösterge bir yere bir int numarası yazmalıdır. Ve danışman onu okusun.

 
fxsaber :

belki böyle bir şey yardımcı olur?

https://www.mql5.com/ru/code/818

File Mapping без DLL
File Mapping без DLL
  • www.mql5.com
Класс MQL5, который работает напрямую с маппингом, без использования самописной DLL.
 
Mikhail Mishanin :

belki böyle bir şey yardımcı olur?

https://www.mql5.com/ru/code/818

Yukarıda akıllı bir WinAPI seçeneği önerildi .

 
fxsaber :

Yukarıda akıllı bir WinAPI seçeneği önerildi .

bu seçenek daha tehlikelidir ve uygulanması zordur

 
Andrei Trukhanovich :

bu seçenek daha tehlikelidir ve uygulanması zordur

Bunu dört gözle bekliyorum.