MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 953

 
Rustam Bikbulatov:

どうしたんだろう?未決済の注文のみを考慮させるにはどうしたらよいですか?このコードは、私が必要としない部分的に閉じた注文もキャプチャします。

実は、私はそれが少しも理解できないのです。なぜint型の関数がstring型の 値を返すのですか?コンパイル時にエラーにならない?
 
Igor Kryuchkov:

OBJ_RECTANGLE オブジェクトが座標ではなく、価格と時間でリンクされているのですが。

И?その通りです。タイムラインを圧縮すると、矩形も圧縮されます。論理的か?ロジックで悩んでいませんか?

グラフの推移を把握する。

 
Artyom Trishkin:

И?そうなんです。タイムラインを縮小すると、矩形も縮小されます。それは論理的か?ロジックで悩んでいませんか?

グラフの推移を追う。

どっちを掘ればいいのか教えてください。

 
Igor Kryuchkov:

どちらにするか教えてください。

私の記事から引用したのは、まさに私が指示した通りです。

目的に応じて、いくつかのタイプのオブジェクトを使用することができます。今使っているものは、絶対に間違っている。

そうすると、いくつかの選択肢が残ります。そして、そのすべてがここにあります。読んで、わからないことを聞けばいいだけです。

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

どちらにするか教えてください。

上で紹介したオブジェクトと、これです。

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

上で紹介したオブジェクトと、これです。

私の問題を解決するためのオブジェクトが見当たらないのですが、どうでしょうか?OBJ_TEXTが フレームをサポートしていなければ!?

 


Rectangle_labelは必要なものです。

しかし、ChartTimePriceToXYで時間、価格を座標に変換しようとしたのです。正しい場所に描画できたのですが、やはりチャートをスクロールすると、その場所に立ってしまい、私にはうまくいきません。


BitMapも同じ話で、座標でくっついているため、チャートをスクロールすると全てのBitMapがその場に立ってしまうので、私には合いません。


では、全体的な質問ですが、上に書いた私のアイデアを実現することは可能なのでしょうか?

 
Igor Kryuchkov:


Rectangle_labelは必要なものです。

しかし、ChartTimePriceToXYで時間、価格を座標に変換しようとしたのです。正しい場所に描画できたのですが、やはりチャートをスクロールすると、その場所に立ってしまい、私にはうまくいきません。


BitMapも同じ話で、座標でくっついているため、チャートをスクロールすると全てのBitMapがその場に立ってしまうので、私には合いません。


では、全体的な質問ですが、上に書いた私のアイデアを実現することは可能なのでしょうか?

はい。

OnChartEvent()のヘルプリンクはこちらです。

 

皆さんこんにちは、MT5でlstrcpyW()に問題があります。


lstrcpyW () は winbase.mqh で定義されています:string lstrcpyW(ushort &string1[],const string string2);


このコードは文字列をクリップボードにコピーしています。


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

}