Bir EA/göstergeden kenelerin öykünmesi - sayfa 5

 
Zhunko : Igor, internetten bu şekilde ayrılmak iyi değil. Bu modda birçok şey çalışmıyor. İnternet erişimini devre dışı bırakmanız gerekmez.

hayır, ilk sayfada, winXR'de iyi çalışıyor, yanılıyorsunuz, ama nedense win7'de benim için çalışmak istemedi

Et : 64-bit Windows'un olduğu yerde kodun çalışmadığına dair bir varsayım var. Sadece 32'm var, bu yüzden kontrol edemiyorum.

hayır, win7 max 32bit'im var

 
IgorM :

hayır, ilk sayfada, winXR'de iyi çalışıyor, yanılıyorsunuz, ama nedense win7'de benim için çalışmak istemedi

Igor, Alexey'nin kodundan bahsetmiyorum, internet bağlantısını kesmekten bahsediyorum.
 
Zhunko :

Bir tıklama göstergesinden nasıl işlem yaparsınız? Bu, MQL4'te sağlanmamıştır.

Gerçekten! Her şeyi döngülü bir Expert Advisor'da yapabiliyorsanız, neden ticaret yapamayan bir tıklama göstergesi ekleyesiniz? WinAPI ile dans etmeye gerek kalmayacak, MT4 arayüzü yavaşlamayacak, 3 kat daha hızlı çalışacak. Neden bu kadar zorlaştırıyorsun?

Tamam, bu tartışmayı bırakalım, yine de herhangi bir yapıcıya yol açmaz, tam tersi. Yazdıklarımın anlamını zaten çarpıtmaya başlıyorsunuz (kasıtlı olup olmadığını bilmiyorum), çünkü Rusça yazdım, bir göstergeden değil, bir metatraderden ticaret yapıyorum ve yine bir tür hakkında konuşuyorsunuz. bir göstergeden ticaret. Daha önce söylediklerimden bir şeyi yanlış yorumladıysanız, açıklarım: "gösterge ticarette kullanılır" ifadesi, göstergenin işlem yaptığı anlamına gelmez.

 
Meat :

Tamam, bu tartışmayı bırakalım, yine de herhangi bir yapıcıya yol açmaz, tam tersi. Yazdıklarımın anlamını zaten çarpıtmaya başlıyorsunuz (kasıtlı olup olmadığını bilmiyorum), çünkü Rusça yazdım, bir göstergeden değil, bir metatraderden ticaret yapıyorum ve yine bir tür hakkında konuşuyorsunuz. bir göstergeden ticaret. Daha önce söylediklerimden bir şeyi yanlış yorumladıysanız, açıklarım: "gösterge ticarette kullanılır" ifadesi, göstergenin işlem yaptığı anlamına gelmez.

Peki, gösterge ticaretinden sinyal alan Uzman Danışman mı? Ve tüm bunlar, elbette, MT4 yapar mı? Doğru şekilde? Eğer öyleyse, o zaman sorum devam ediyor. Neden tüm bunları bir uzmana emanet etmiyorsunuz? Bu mantıklı.
 
Zhunko : Igor, Alexey'nin kodundan bahsetmiyorum, internet bağlantısını kesmekten bahsediyorum.

Evet, anlıyorum, ancak kodu, Winhr'de İnternet devre dışı bırakıldığında çalışıyor

ve prensip olarak koda ihtiyaç vardır, bunu bir içerme şeklinde yaparız ve izinli olduğumuz bir günde herhangi bir kodda keneler bulunur, özellikle grafik nesnelerle çalışırken yararlıdır - insanlar genellikle "akıllı cetveller" yapmayı isterler , vb. ve bir gün izinliyken göz koduyla yapmanız gerekir

 
IgorM :

Evet, anlıyorum, ancak kodu, Winhr'de İnternet devre dışı bırakıldığında çalışıyor

ve prensip olarak koda ihtiyaç vardır, bunu bir içerme şeklinde yaparız ve izinli olduğumuz bir günde herhangi bir kodda keneler bulunur, özellikle grafik nesnelerle çalışırken yararlıdır - insanlar genellikle "akıllı cetveller" yapmayı isterler , vb. ve bir gün izinliyken göz koduyla yapmanız gerekir

Her yerde çalışan kodu gönderdim. Tek çizgi. Zamanlayıcı olmadan. Tüm göstergelerde ve herhangi bir işletim sisteminde çalışır. deney için yeterli.

Uzman için de yukarıda yayınlandı. EA için bir onay işareti oluşturan satırı gösterge koduyla değiştirebilirsiniz. Sonra uzmanı çekecek.

Kütüphaneyi basitleştirebilir ve kullanabilirsiniz. Orada zaten her şey uygulanıyor.

 
Zhunko :
Peki, gösterge ticaretinden sinyal alan Uzman Danışman mı? Ve tüm bunlar, elbette, MT4 yapar mı? Doğru şekilde? Eğer öyleyse, o zaman sorum devam ediyor. Neden tüm bunları bir uzmana emanet etmiyorsunuz? Bu mantıklı.

Hayır, kendimi takas ediyorum. Otomatik ticaretten bahsediyor olsaydık, göstergeler veya keneler sorunu hiç gündeme gelmezdi çünkü artık orada gerekli değiller. Öyleyse görünüşe göre başlangıçta bu dalın anlamını yanlış anladınız.

 

Kahretsin, işte başka bir şey. sicim

TimerCode[ byte / 4 ] += ( value [i]>>( 8 *j)& 0xFF ) <<( byte % 4 * 8 );

ile değiştirilmelidir

TimerCode[ byte / 4 ] |= ( value [i]>>( 8 *j)& 0xFF ) <<( byte % 4 * 8 );

Aksi takdirde SetMyTimer'ı tekrar aradığınızda hata oluşacaktır. Peki, ya da döngünün başlangıcından önce diziyi sıfır ile başlatabilirsiniz.

Win7'ye gelince, sorunu asla yeniden oluşturamadım, her şey benim için iyi çalışıyor. Ve körü körüne hata ayıklama gerçekçi değildir. Acaba burada yedide de bu kodu çalıştıran başka biri var mı? Ve sonra bazı özel Windows'um varmış gibi geliyor.

 

Görünüşe göre neyin yanlış olduğunu buldum. İşte SetMyTimer fonksiyonunun düzeltilmiş versiyonu.

 int SetMyTimer( int interval)
{    
   int MT4InternMsg= RegisterWindowMessageA( "MetaTrader4_Internal_Message" );
   int hWnd= WindowHandle(Symbol(),Period());
   int PostMsgAddr= GetProcAddress(GetModuleHandleA( "user32.dll" ), "PostMessageA" );
   if (PostMsgAddr== 0 ) return ( 0 );
   // push ebp; move ebp,esp; push 01; push 02; push MT4InternMsg; push hWnd; mov eax,PostMsgAddr; call eax; pop ebp; ret 0010;    
   int value []={ 0x55 , 0x8B , 0xEC , 0x6A , 01 , 0x6A , 02 , 0x68 , 0000 , 0x68 , 0000 , 0xB8 , 0000 , 0xFF , 0xD0 , 0x5D , 0xC2 , 0x10 };
   int len[]=  { 1 ,     1 ,   1 ,     1 ,   1 ,   1 ,   1 ,   1 ,   4 ,     1 ,   4 ,     1 ,   4 ,     1 ,   1 ,     1 ,     1 ,   2 };
   value [ 8 ]=MT4InternMsg;   value [ 10 ]=hWnd;   value [ 12 ]=PostMsgAddr; 
   int byte = 0 ;  ArrayInitialize(TimerCode, 0 );
   for ( int i= 0 ;  i<ArraySize( value );  i++)
     for ( int j= 0 ;  j<len[i];  j++, byte ++)
      TimerCode[ byte / 4 ] |= value [i]>>( 8 *j)& 0xFF <<( byte % 4 * 8 );

   return ( SetTimer(hWnd, TimerId, interval, TimerCode) );
}

Şimdi bu iyi çalışmalı.

 

hayır... çalışmıyor

günlükte hata yok, Vadim'in tavsiyesi üzerine terminaldeki İnternet bile kapanmadı - çıktı hala kene yok