Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 953

 
Rustam Bikbulatov:

O que há de errado comigo? Como posso fazer somente pedidos abertos? Este código também captura ordens parcialmente fechadas, que eu não preciso

Na verdade, não entendo nem um pouco. Por que a função do tipo int retorna um valor do tipo string? Não comete um erro durante a compilação?
 
Igor Kryuchkov:

Eu tenho um objetoOBJ_RECTANGLE ligado por preço e tempo, não por coordenadas.

И? É isso mesmo. Quando você comprime a linha do tempo, o retângulo também é comprimido. É lógico? Você está lutando com a lógica?

Mantenha o controle da mudança no gráfico.

 
Artyom Trishkin:

И? É isso mesmo. Quando você encolhe a linha do tempo, o retângulo também encolhe. Isso é lógico? Você está lutando com a lógica?

Acompanhe a mudança no gráfico.

Por favor, diga-me qual o caminho a ser cavado.

 
Igor Kryuchkov:

Por favor, diga-me qual o caminho a seguir.

Você citou do meu posto exatamente o que eu lhe disse.

Há vários tipos de objetos que você pode usar para seus propósitos. O que você está usando agora definitivamente não é o correto.

Isso deixa várias opções. E todos eles estão aqui, basta ler e perguntar o que você não entende:

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

Por favor, diga-me qual o caminho a seguir.

Os objetos que eu mostrei acima e isto:

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

Os objetos que eu mostrei acima, e isto:

Eu não vejo um objeto para resolver meu problema, você vê? A menos que OBJ_TEXT suporte uma estrutura!?

 


Rectangle_label é o que eu preciso.

Mas tentei traduzir Time, Price with ChartTimePriceToXY em coordenadas. Consegui desenhar no lugar certo, mas novamente, ao rolar a carta, ela se mantém no lugar, o que não funciona para mim.


É a mesma história com o BitMap, porque ele é anexado por coordenadas, o que significa que todos os BitMaps se manterão no lugar ao rolar o gráfico, não me convém.


Então pergunta geral, é possível implementar minha idéia que descrevi acima?

 
Igor Kryuchkov:


Rectangle_label é o que eu preciso.

Mas tentei traduzir Time, Price with ChartTimePriceToXY em coordenadas. Consegui desenhar no lugar certo, mas novamente, ao rolar a carta, ela se mantém no lugar, o que não funciona para mim.


É a mesma história com o BitMap, porque ele é anexado por coordenadas, o que significa que todos os BitMaps se manterão no lugar ao rolar o gráfico, não me convém.


Então pergunta geral, é possível implementar minha idéia que descrevi acima?

Sim.

Eu lhe dei o link de ajuda para OnChartEvent()

 

Olá a todos, eu tenho um problema com lstrcpyW () no MT5,


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


este código copia fio para prancheta, como faço para mudar para que funcione


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

}
 
Razão: