Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 953

 
Rustam Bikbulatov:

Cosa c'è di sbagliato in me? Come posso fare in modo che vengano considerati solo gli ordini aperti? Questo codice cattura anche gli ordini parzialmente chiusi, di cui non ho bisogno

In realtà non ci capisco niente. Perché la funzione di tipo int restituisce un valore di tipo stringa? Non lancia un errore durante la compilazione?
 
Igor Kryuchkov:

Ho un oggettoOBJ_RECTANGLE collegato per prezzo e tempo, non per coordinate.

И? Questo è corretto. Quando si comprime la linea temporale, anche il rettangolo viene compresso. È logico? Stai lottando con la logica?

Tieni traccia dello spostamento nel grafico.

 
Artyom Trishkin:

И? Proprio così. Quando si restringe la linea temporale, anche il rettangolo si restringe. È logico? Stai lottando con la logica?

Traccia lo spostamento nel grafico.

Per favore, ditemi da che parte scavare.

 
Igor Kryuchkov:

Per favore, ditemi da che parte andare.

Hai citato dal mio post esattamente quello che ti ho detto.

Ci sono diversi tipi di oggetti che potete usare per i vostri scopi. Quello che state usando ora non è sicuramente quello giusto.

Questo lascia diverse opzioni. E sono tutti qui, basta leggere e chiedere ciò che non si capisce:

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

Per favore, ditemi da che parte andare.

Gli oggetti che ho mostrato sopra e questo:

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

Gli oggetti che ho mostrato sopra e questo:

Non vedo un oggetto per risolvere il mio problema, e voi? A meno che OBJ_TEXT non supporti un frame!?

 


Rectangle_label è quello che mi serve.

Ma ho provato a tradurre Tempo, Prezzo con ChartTimePriceToXY in coordinate. Sono stato in grado di disegnare nel posto giusto, ma di nuovo, quando si scorre il grafico, sta in piedi, il che non funziona per me.


È la stessa storia con BitMap, perché è attaccata da coordinate, il che significa che tutte le BitMap staranno al loro posto quando si scorre il grafico, non mi piace.


Poi in generale una domanda, è possibile implementare la mia idea che ho descritto sopra?

 
Igor Kryuchkov:


Rectangle_label è quello che mi serve.

Ma ho provato a tradurre Tempo, Prezzo con ChartTimePriceToXY in coordinate. Sono stato in grado di disegnare nel posto giusto, ma di nuovo, quando si scorre il grafico, sta in piedi, il che non funziona per me.


È la stessa storia con BitMap, perché è attaccata da coordinate, il che significa che tutte le BitMap staranno al loro posto quando si scorre il grafico, non mi piace.


Allora domanda generale, è possibile implementare la mia idea che ho descritto sopra?

Sì.

Ti ho dato il link di aiuto per OnChartEvent()

 

Ciao a tutti, ho un problema con lstrcpyW () su MT5,


lstrcpyW () definito in winbase.mqh:string lstrcpyW(ushort &string1[],const string string2);


questo codice copia la stringa negli appunti, come posso cambiarlo per farlo funzionare


//+------------------------------------------------------------------+
//| 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);

}