私たちのファンページに参加してください
- ビュー:
- 1102
- 評価:
- パブリッシュ済み:
- 2016.07.08 10:34
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
画素描画用のCBitPicグラフィカルコントロールクラスを持ったIncGUI_BitPic.mqhインクルードファイル(図1)。
図1。CBitPicクラスでの描画の例
異なるサイズのポイントの描画 - DrawDot()、座標上の線 - DrawLine()、角度による線 - DrawLineByAngle()、矢印 - DrawArrow()、種々の形状:長方形 - DrawRectangle()、三角形 - DrawTriangle()、円、楕円、リング、扇形 - DrawCircle()。楕円(楕円リングと扇形も同様)は、所定の角度によって回転させることができます。形状は、色で塗りつぶされることもアウトラインのみでありこともできます。テキストの出力 - TypeText()(複数のフォントとサイズオプション)。作成された画像はBMPファイルに保存でき - SavePicture()、読み込むことができます - LoadPicture()(ファイルは、24ビットまたは32ビットで圧縮されるべきではありません)。
コントロールの使用を開始する前に、IncGUI_BitPic.mqhファイルを含みます。
#include <IncGUI_BitPic.mqh>
そして例として「p」のようにクラスを宣言します。
CBitPic p;
クラスは、下の記事に記載された原則を使用して作成されます。
したがって、上記の記事で説明したコントロールと同様に使用されます。最初に初期化メソッドのInit() が呼び出されます。Show()メソッドが可視性を可能にするために使用されます。Hide()メソッドは、隠し作業完了時に削除するために使用されます。
cIntBMPクラスと比べると描画の方法はなんとなく異なります。cIntBMPでは形状を描画する関数で描画の色は指定されました。ここでは背景色がSetBGColor()によって指定されClear()でクリアされます。描画の前に幅 - SetDrawWidth()、色 - SetDrawColor()、塗りつぶしに使われる色 - SetFillColor() が設定され、形状が塗りつぶされるか - SetFilled() アウトラインのみかが指定されます。これには描画関数の呼び出しが続きます。描画の色や塗りつぶしに使われる色などは必要に応じて変更できます。描画が完了したらRedraw() メソッドを呼び出す必要があります。
以下の表はすべてのクラスメソッドを示します。
メソッド |
関数とパラメータ |
---|---|
void Clear() | 消去 |
void DrawArrow( int aX1, int aY1, int aX2, int aY2, bool aBoth=false ) |
矢印の描画。aX1、aY1 - 開始座標、aX2、aY2 - 終了座標、aBoth - 両方向の矢印。 |
void DrawCircle( int aX, int aY, int aR, double aR2K=0, double aFromAngle=0, double aToAngle=0, double aRatio=1, double aRotateAngle=0 ) |
サークル、リング、楕円、扇形の描画。aX、aY - 中央の座標、aR2K - 内側の円の半径(0~1)、aFromAngle、aToAngle - 扇形の角度の始めと終わり、aRatio - 圧縮係数( 正の数で1未満である場合は縦圧縮、 1より大きい場合は縦膨張)、aRotateAngle - 回転角度。 |
void DrawDot( int aX, int aY ) |
点の描画。aX、aY - 座標 |
void DrawLine( int aX1, int aY1, int aX2, int aY2 ) |
線の描画aX1、aY1 - 開始座標、aX2、aY2 - 終了座標。 |
void DrawLineByAngle( int aX1, int aY1, double aAngle, int aLength ) |
角度による線の描画aX1、aY1 - 開始座標、aAngle - 角度、aLength - 長さ。 |
void DrawRectangle( int aX1, int aY1, int aX2, int aY2 ) |
四角形の描画aX1、aY1 - 左上隅の座標、aX2、aY2 - 右下隅の座標。 |
void DrawTriangle( int aX1, int aY1, int aX2, int aY2, int aX3, int aY3 ) |
三角形の描画aX1、aY1、aX2、aY2、aX3、aY3 - 頂点の座標。 |
int Event( const int id, const long & lparam, const double & dparam, const string & sparam ) |
イベントハンドラエキスパートアドバイザーのOnChartEvent()関数から呼び出されます。 |
int EventX() | グラフィックオブジェクトの最後のクリックのX座標。 |
int EventY() | グラフィックオブジェクトの最後のクリックのY座標。 |
void Fill( int aX, int aY ) |
塗りつぶしの色での1色領域の塗りつぶしaX、aY - 座標 |
void GetData( uint & aData[] ) |
画像データの配列の取得aData - データが返される配列 |
color GetPixel( int aX, int aY ) |
指定された座標での画素の色の取得aX、aY - 座標 |
int Height() | グラフィックオブジェクトの高さの取得 |
void Hide() | チャートからのグラフィックオブジェクトの削除 |
void Init( string aName="CBitPic", int aWidth=300, int aHeight=200 ) |
初期化aName - グラフィックオブジェクトの名前、aWidth - 幅、aHeight - 高さ。 |
int Left() | グラフィカルオブジェクトの左端の座標の取得 |
bool LoadPicture( string aFileName, bool aFileCommon=false ) |
BMPファイルからの画像の読み込みaFileName - ファイル名、aFileCommon - ファイルは「MQL5/Files」パブリックフォルダか「MQL5/Files」端末フォルダにあります。24ビットまたは32ビットの非圧縮ファイルが許可されています。 |
void Redraw() | グラフィックオブジェクトの再描画 |
void Refresh() | 更新(削除と作製) |
bool SavePicture( string aFileName, bool aFileCommon=false ) |
画像の bmpファイルへの保存aFileName - ファイル名、aFileCommon - ファイルは「MQL5/Files」パブリックフォルダか「MQL5/Files」端末フォルダに保存されます。 |
void SetBGColor( uchar aR=0, uchar aG=0, uchar aB=255 ) |
背景色の設定aR、aG、aB - 色成分の値 |
void SetBGColor( color aColor=clrBlue ) |
背景色の設定aColor - 色色の設定の後にはClear()メソッドが呼ばれるべきです。 |
void SetData( uint & aData[] ) |
画像データの配列の設定aData - データ配列 |
void SetDrawColor( uchar aR=255, uchar aG=255, uchar aB=0) |
描画色の設定aR、aG、aB - 色成分の値 |
void SetDrawColor( color aColor=clrYellow ) |
描画色の設定aColor - 色 |
void SetDrawWidth( int aWidth ) |
描画線の幅の設定aWidth - 1~5の幅 |
void SetFillColor( uchar aR=255, uchar aG=0, uchar aB=0 ) |
塗りつぶしの色の設定aR、aG、aB - 色成分の値 |
void SetFillColor( color aColor=clrRed ) |
塗りつぶしの色の設定aColor - 色 |
void SetFilled( bool aFilled=true ) |
塗りつぶしモードの設定aFilled - 塗りつぶしのあるなし |
void SetFont( int aType=3 ) |
フォントの設定aType - タイプ(0~6)0 - 小フォント6、1 - 小フォント7、2 - 小フォント8、3 - Arial 8、4 - Arial Narrow 8、5 - Arial Black 8、6 - Courier New 8 |
void SetPos( int aLeft, int aTop ) |
グラフィカルオブジェクトの左端の座標の設定aLeft - 左端からの距離、aTop - 上端からの距離 |
void SetPosLeft( int aLeft ) |
グラフィカルオブジェクトの左端の座標の設定aLeft - 左端からの距離 |
void SetPosTop( int aTop ) |
グラフィカルオブジェクトの上端の座標の設定aTop - 上端からの距離 |
void SetSize( int aWidth, int aHeight ) |
サイズの設定aWidth - 幅、aHeight - 高さ |
void SetSubWindow( int aNumber ) |
サブウィンドウの番号での設定aNumber - サブウィンドウ番号 |
void SetSubWindow( string aName ) |
サブウィンドウの名前での設定aName - サブウィンドウの名前 |
void SetTag( string aValue ) |
タグの設定aValue - テキスト |
void Show() | グラフィックオブジェクトを可視化する。 |
void Show( int aLeft, int aTop ) |
指定された位置でのグラフィックオブジェクトを可視化する。aLeft - 左端からの距離、aTop - 上端からの距離 |
string Tag() | タグの取得 |
int Top() | グラフィカルオブジェクトの上端の座標の取得 |
void TypeText( int aX, int aY, string aText, int aDirection=0, int aAlign=0 ) |
テキストの入力aX、aY - 座標、aText - テキスト、aDirection - 方向(0 - 左から右、1 - 上から下、2 - 右から左で裏返し、3 -下から上)、aAlignе - アライメント(0 - テキストの始め、1 - テキストの終わり) |
bool Visible() | グラフィックオブジェクトの可視化の取得 |
int Width() | グラフィックオブジェクトの幅の取得 |
eBitPicTest.mq5ファイルにはCBitPicクラスの使用例があります。エキスパートアドバイザーは、図1のようにチャート上に画像を描画しCBitPic.bmpファイルに保存します(端末データフォルダのMQL5/Filesに表示されるべきです)。画像をクリックすると、ポイント座標と色がチャートのコメントに表示され(図1の右上隅にあるように)「スノーフレーク」がクリックした点に表示されます。
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1050

New Highs-New Lows指数は、所定の期間中に新安値に達した通貨ペアの数と新高値に達した通貨ペアの数の差として計算されます。

履歴の一定期間での極値を識別する関数。