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

 
Yevhenii Levchenko :
Bir danışmanla ticaret yapmak için bir zaman filtresi (saatlere göre) nasıl ayarlanır? Aşağıdakiler işe yarar mı:

SİZ google (danışmanın çalışmasını zamana göre sınırlama - örneğin) - örneğin, 22:00 ile 04:00 arasında işlem yapma gibi özellikler olabilir. Kim I.V.'nin ofislerinde Konu: Kim'den yalnızca kullanışlı özellikler - bak.

İşte bir seçenek:

 extern int HourStart= 2 ;
// время начала работы советника в часах по времени терминала - может быть от 0 до 23
extern int HourEnd= 22 ;
// время окончания работы советника в часах по времени терминала
// пример - советник начинает работать в 2 часа 0 минут, заканчивает работу в 22, то есть в 22 часа и после советник не выставляет новых ордеров и ждет рабочего времени - 2 часа
extern bool Use_Time= false ;

...

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  { 
   bool time_trade= false ;
   if (Use_Time== false ) {time_trade= true ;}
   if (Use_Time== true && Hour()>=HourStart && Hour()<HourEnd) {time_trade= true ;}

...
   
 
Roman Shiredchenko :

SİZ google - 22:00 - 04:00 arası açık artırmalar gibi özellikler olabilir. Kim I.V.'nin ofislerinde Konu: Kim'den yalnızca kullanışlı özellikler - bak.

İşte bir seçenek:

Vay ne güzel bir konu! Teşekkür ederim!


Yaptıklarım işe yaramayacak mı?
 
Yevhenii Levchenko :

Vay ne güzel bir konu! Teşekkür ederim!


Yaptıklarım işe yaramayacak mı?

Evet xs - hazırla ve kullan, doğrusunu anla. Bisikletlerin hepsi icat edildi, IMHO.

 
Yevhenii Levchenko :
Bir danışmanla ticaret yapmak için bir zaman filtresi (saatlere göre) nasıl ayarlanır? Aşağıdakiler işe yarar mı:

bu uzun zaman önce tartışıldı, işte konu, örneklerimin hepsi çalışıyor, kullanıyorum, MT4'te her şey çalışıyor Symbol() ve _Symbol kullanmanın özellikleri nelerdir? Bunu veya bu Sembolü kullanmak ne zaman daha iyidir?

Mevcut enstrüman için sipariş olup olmadığını kontrol etmek için aşağıdaki kod doğru çalışacak mı:

yok, Symbol() bir sembol adı almanın eski bir şeklidir, MQL4 - MQL5 uyumluluğu için en son yapılarda _Symbol eklendi

sıfırdan kod yazıyorsanız _Symbol kullanın, kodu MQL5'e aktarmak istiyorsanız daha az düzenleme yapmanız gerekecek

 
Igor Makanu :

bu uzun zaman önce tartışıldı, işte konu, örneklerimin hepsi çalışıyor, kullanıyorum, MT4'te her şey çalışıyor https://www.mql5.com/en/forum/317351


yok, Symbol() bir sembol adı almanın eski bir şeklidir, MQL4 - MQL5 uyumluluğu için en son yapılarda _Symbol eklendi

sıfırdan kod yazıyorsanız _Symbol kullanın, kodu MQL5'e aktarmak istiyorsanız daha az düzenleme yapmanız gerekecek

Teşekkür ederim!

Kod elbette yazmaya çalıştığımdan çok daha büyük... :) Oturup çözmem gerekecek...
 
Igor Makanu :

bu uzun zaman önce tartışıldı, işte konu, örneklerimin hepsi çalışıyor, kullanıyorum, MT4'te her şey çalışıyor https://www.mql5.com/en/forum/317351


yok, Symbol() bir sembol adı almanın eski bir şeklidir, MQL4 - MQL5 uyumluluğu için en son yapılarda _Symbol eklendi

sıfırdan kod yazıyorsanız _Symbol kullanın, kodu MQL5'e aktarmak istiyorsanız daha az düzenleme yapmanız gerekecek

Fark farklıdır. _Symbol önceden tanımlanmış bir değişkendir ve Symbol() bir fonksiyondur.

Hem o hem de bir diğeri hem orada hem de orada çalışır. Her şey kesinlikle aynı. Ancak bir zamanlar, geliştiricilerden biri (tam olarak kimin olduğunu hatırlamıyorum) işlevi kullanmanın tercih edildiğini söyledi.

 

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

Symbol() ve _Symbol arasındaki fark nedir

fxsaber , 2019.07.07 14:47

 void Func( const string & ) {}

void OnStart ()
{
  Func( Symbol ()); // ERROR: 'Symbol' - parameter passed as reference, variable expected
  Func( _Symbol );   // OK    
}
 
Artyom Trishkin :

Fark farklıdır. _Symbol önceden tanımlanmış bir değişkendir ve Symbol() bir fonksiyondur.

Hem o hem de bir diğeri hem orada hem de orada çalışır. Her şey kesinlikle aynı. Ancak bir zamanlar, geliştiricilerden biri (tam olarak kimin olduğunu hatırlamıyorum) işlevi kullanmanın tercih edildiğini söyledi.

bence, daha uygun olanı, kullanmanız gereken şey, yardımda gezindi, geliştiricilerden net bir öneri yok

Uygulamadan, bazı kitaplıklarda geliştiriciler sınıf yöntemlerinde Symbol() öğesini geçersiz kılar, ayrıca MQL5'teki özel TF'm için sınıftaki yöntemi Symbol() olarak geçersiz kıldım .... Elimden geldiğince rahat kullanıyorum, yapmıyorum t kitap aksiyomlarına göre suçları görün )) )

Not: bence, bu zaten bir din ... o zaman iClose () işlevleri kullanılamaz - "bu zanaat!" (İLE)

o zaman işte yeni bir trend _Symbol Symbol() 'den daha kötü ... her ihtimale karşı hızı ölçtüm, hiçbir fark yok, bire bir çalışıyorlar

 #property strict
//+------------------------------------------------------------------+
#define   test(count_x10,msg,EX)        { uint mss= GetTickCount (); ulong count=( ulong ) pow ( 10 ,count_x10); for ( ulong i= 0 ;i<count&&! _StopFlag ;i++){EX;} \
                                 printf ( "%s: loops=%i ms=%u" ,msg,count, GetTickCount ()-mss);}

//+------------------------------------------------------------------+
void OnStart ()
  {
   Print ( "test 1:" ); srand ( GetTickCount ()); test( 9 , "_Symbol" , string s= _Symbol + IntegerToString ( rand ()));
   Print ( "test 2:" ); srand ( GetTickCount ()); test( 9 , "Symbol()" , string s= Symbol ()+ IntegerToString ( rand ()));
   Print ( "test 3:" ); srand ( GetTickCount ()); test( 9 , "_Symbol" , string s= _Symbol + IntegerToString ( rand ()));
   Print ( "test 4:" ); srand ( GetTickCount ()); test( 9 , "Symbol()" , string s= Symbol ()+ IntegerToString ( rand ()));
   Print ( "test 5:" ); srand ( GetTickCount ()); test( 9 , "_Symbol" , string s= _Symbol + IntegerToString ( rand ()));
   Print ( "test 6:" ); srand ( GetTickCount ()); test( 9 , "Symbol()" , string s= Symbol ()+ IntegerToString ( rand ()));
  }
//+------------------------------------------------------------------+

2019.08.09 00:54:20.631 tst EURUSD,H1: Sembol(): döngüler=1000000000 ms=66203

2019.08.09 00:53:14.432 tst EURUSD,H1: test 6:

2019.08.09 00:53:14.432 tst EURUSD,H1: _Symbol: döngüler=1000000000 ms=65515

2019.08.09 00:52:08.921 tst EURUSD,H1: test 5:

2019.08.09 00:52:08.921 tst EURUSD,H1: Symbol(): döngüler=1000000000 ms=65610

2019.08.09 00:51:03.301 tst EURUSD,H1: test 4:

2019.08.09 00:51:03.301 tst EURUSD,H1: _Symbol: döngüler=1000000000 ms=65890

2019.08.09 00:49:57.418 tst EURUSD,H1: test 3:

2019.08.09 00:49:57.418 tst EURUSD,H1: Symbol(): döngüler=1000000000 ms=65563

2019.08.09 00:48:51.850 tst EURUSD,H1: test 2:

2019.08.09 00:48:51.850 tst EURUSD,H1: _Symbol: döngüler=1000000000 ms=65750

2019.08.09 00:47:46.105 tst EURUSD,H1: test 1:

 
Igor Makanu :

bence, daha uygun olanı, kullanmanız gereken şey, yardımda gezindi, geliştiricilerden net bir öneri yok

Uygulamadan, bazı kitaplıklarda geliştiriciler sınıf yöntemlerinde Symbol() öğesini geçersiz kılar, ayrıca MQL5'teki özel TF'm için sınıftaki yöntemi Symbol() olarak geçersiz kıldım .... Elimden geldiğince rahat kullanıyorum, yapmıyorum t kitap aksiyomlarına göre suçları görün )) )

Not: bence, bu zaten bir din ... o zaman iClose () işlevleri kullanılamaz - "bu zanaat!" (İLE)

o zaman işte yeni bir trend _Symbol Symbol() 'den daha kötü ... her ihtimale karşı hızı ölçtüm, hiçbir fark yok, bire bir çalışıyorlar

2019.08.09 00:54:20.631 tst EURUSD,H1: Sembol(): döngüler=1000000000 ms=66203

2019.08.09 00:53:14.432 tst EURUSD,H1: test 6:

2019.08.09 00:53:14.432 tst EURUSD,H1: _Symbol: döngüler=1000000000 ms=65515

2019.08.09 00:52:08.921 tst EURUSD,H1: test 5:

2019.08.09 00:52:08.921 tst EURUSD,H1: Symbol(): döngüler=1000000000 ms=65610

2019.08.09 00:51:03.301 tst EURUSD,H1: test 4:

2019.08.09 00:51:03.301 tst EURUSD,H1: _Symbol: döngüler=1000000000 ms=65890

2019.08.09 00:49:57.418 tst EURUSD,H1: test 3:

2019.08.09 00:49:57.418 tst EURUSD,H1: Symbol(): döngüler=1000000000 ms=65563

2019.08.09 00:48:51.850 tst EURUSD,H1: test 2:

2019.08.09 00:48:51.850 tst EURUSD,H1: _Symbol: döngüler=1000000000 ms=65750

2019.08.09 00:47:46.105 tst EURUSD,H1: test 1:

Dedikleri gibi - aldığı şey için, sattığı için. Öneri belgelerde değildi, ancak forumdaki kelimelere göre.

 
Igor Makanu :

Neden son satırda eğik çizgi yok ve makrodan değer döndürmek mümkün mü?

 #define FOR3(a,b,c,loop) for ( int i= 0 ; i<a; i++) \
for ( int j= 0 ; j<b; j++) \
for ( int k= 0 ; k<c; k++) \
{loop;}