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

 
Rustam Bikbulatov :

Benimle ilgili sorun ne? Sadece açık siparişleri dikkate alması nasıl sağlanır? Bu kod, ihtiyacım olmayan hala kısmen kapalı siparişleri yakalar

Aslında biraz belirsiz. Neden int türünde bir işlev, ancak dize türünde bir değer döndürüyor? Derlerken hata veriyor mu?
 
Igor Kryuchkov :

Koordinatlara göre değil, fiyatlara ve zamana bağlı bir OBJ_RECTANGLE nesnem var.

VE? Bu doğru. Zaman çizelgesini sıkıştırdığınızda, dikdörtgen de sıkıştırılır. mantıklı mı? Mantıkla mı mücadele ediyorsun?

Harita kaymasını takip edin.

 
Artyom Trishkin :

VE? Bu doğru. Zaman çizelgesini sıkıştırdığınızda, dikdörtgen de sıkıştırılır. mantıklı mı? Mantıkla mı mücadele ediyorsun?

Harita kaymasını takip edin.

Hangi tarafta kazılacağını sorma isteği.

 
Igor Kryuchkov :

Hangi tarafta kazılacağını sorma isteği.

Bu yazıyla benim ipucumu alıntıladın.

Amaçlarınız için kullanabileceğiniz çeşitli nesne türleri vardır. Şu an kullandığınız çalışmıyor.

Geriye birkaç seçenek kalıyor. Ve hepsi burada, sadece okumanız gerekiyor ve net olmayan şey - şunu sorun:

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
Igor Kryuchkov :

Hangi tarafta kazılacağını sorma isteği.

Yukarıda gösterilen nesneler ve bu:

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Существуют 11 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Artyom Trishkin :

Yukarıda gösterilen nesneler ve bu:

Sorunumu çözecek bir nesne görmüyorum, anlıyor musun? Bir çerçeveyi destekliyorsa OBJ_TEXT midir ?

 


Rectangle_label ihtiyacım olan şey.

Ama ChartTimePriceToXY kullanarak Time, Price'ı koordinatlara çevirmeye çalıştım. Doğru yere çizmeyi başardım ama yine grafikte gezinirken hareketsiz duruyor ki bu bana hiç yakışmıyor.


BitMap ile aynı hikaye, çünkü koordinatlarla ekleniyor, bu da grafiği kaydırırken tüm BitMap'in hareketsiz kalacağı anlamına geliyor, bu bana uymuyor.


O zaman genel olarak soru şu: Yukarıda anlattığım fikrimi hayata geçirmek mümkün mü?

 
Igor Kryuchkov :


Rectangle_label ihtiyacım olan şey.

Ama ChartTimePriceToXY kullanarak Time, Price'ı koordinatlara çevirmeye çalıştım. Doğru yere çizmeyi başardım ama yine grafikte gezinirken hareketsiz duruyor ki bu bana hiç yakışmıyor.


BitMap ile aynı hikaye, çünkü koordinatlarla ekleniyor, bu da grafiği kaydırırken tüm BitMap'in hareketsiz kalacağı anlamına geliyor, bu bana uymuyor.


O zaman genel olarak soru şu: Yukarıda anlattığım fikrimi hayata geçirmek mümkün mü?

Evet.

OnChartEvent() konusunda size yardımcı olacak bir bağlantı verdim

 

herkese merhaba, MT5'te lstrcpyW() ile ilgili bir sorunum var,


lstrcpyW () winbase.mqh içinde tanımlanmıştır: string lstrcpyW(ushort &string1[],const string string2);


bu kod, dizeyi panoya kopyalar, çalışması için nasıl değiştirilir


 //+------------------------------------------------------------------+
//| This piece of code will copy any text we want to the clipboard   |
//+------------------------------------------------------------------+
/*
#import "kernel32.dll"
   int GlobalAlloc(int Flags, int Size);   long                 GlobalAlloc(uint flags,ulong bytes);
   int GlobalLock(int hMem);               long                  GlobalLock(HANDLE mem);            
   int GlobalUnlock(int hMem);             int                    GlobalUnlock(HANDLE mem);
   int GlobalFree(int hMem);               long                 GlobalFree(HANDLE mem);
   int lstrcpyW(int ptrhMem, string Text);
#import


#import "user32.dll"
   int OpenClipboard(int hOwnerWindow);         int   OpenClipboard(HANDLE wnd_new_owner)
   int EmptyClipboard();                        int   EmptyClipboard(void);
   int CloseClipboard();                        int   CloseClipboard(void);
   int SetClipboardData(int Format, int hMem);  long  SetClipboardData(uint format,HANDLE mem);
#import
*/
#define GMEM_MOVEABLE   2
#define CF_UNICODETEXT   13



#include <WinAPI\winuser.mqh>
#include <WinAPI\winbase.mqh>
// Copies the specified text to the clipboard, returning true if successful
bool CopyTextToClipboard( string Text)
{ 
   bool bReturnvalue = false ;
   long wnd_new_owner= 0 ;
   // Try grabbing ownership of the clipboard 
   if (OpenClipboard(wnd_new_owner) != 0 ) {
       // Try emptying the clipboard
       if (EmptyClipboard() != 0 ) {
         // Try allocating a block of global memory to hold the text 
         int lnString = StringLen (Text);
         long hMem = GlobalAlloc(GMEM_MOVEABLE, lnString * 2 + 2 );
         if (hMem != 0 ) {
             // Try locking the memory, so that we can copy into it
             long ptrMem = GlobalLock(hMem);
             if (ptrMem != 0 ) {
               // Copy the string into the global memory
               lstrcpyW(ptrMem, Text);            
               // Release ownership of the global memory (but don't discard it)
               GlobalUnlock(hMem);            

               // Try setting the clipboard contents using the global memory
               if (SetClipboardData(CF_UNICODETEXT, hMem) != 0 ) {
                   // Okay
                  bReturnvalue = true ;   
               } else {
                   // Failed to set the clipboard using the global memory
                  GlobalFree(hMem);
               }
            } else {
               // Meemory allocated but not locked
               GlobalFree(hMem);
            }      
         } else {
             // Failed to allocate memory to hold string 
         }
      } else {
         // Failed to empty clipboard
      }
       // Always release the clipboard, even if the copy failed
      CloseClipboard();
   } else {
       // Failed to open clipboard
   }

   return (bReturnvalue);
}




void OnStart (){

bool re = false ;

re =CopyTextToClipboard( "11111" );

printf (re);

}