初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 317

 
artmedia70:
//+------------------------------------------------------------------+
//|                                                    trendyxV1.mq5 |
//+------------------------------------------------------------------+
#include <Canvas\Canvas.mqh>
CCanvas LomLine;
int KoorX[4]={100,200,350,480};
int KoorY[4]={100,150,380,150};
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   LomLine.Destroy();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   LomLine.CreateBitmapLabel("trendyx",0,0,800,800,COLOR_FORMAT_ARGB_RAW);
   LomLine.PolylineAA(KoorX,KoorY,ColorToARGB(clrRed, 155),STYLE_SOLID);
   LomLine.Update();

  }
//+------------------------------------------------------------------+

,.

 
pako:

,.

 
EAは、「'OrderSend'関数のパラメータ9として無効な整数値」のため、ポジションのオープンを停止しました。これは何なのか、どなたか説明してください。おそらく、MT4端末のアップデートが 原因だと思います。
 
Katerina:
EAは、「'OrderSend'関数のパラメータ9として無効な整数値」のため、ポジションのオープンを停止しました。これは何なのか、どなたか説明してください。おそらくMT4ターミナルのアップデートが 原因だと思われます。
OrderSend"関数が呼び出されるコードを添付してください。おそらく、マジックナンバーが正しく設定されていないのだと思います。
 
あ、そうか、もう直したんだ。ご感想をお寄せいただきありがとうございました。
 
MQl5のチャートに、ローソクを叩いている人とか、インジケーターのシグナルとか、ただ単にアニメーションを 追加できないかなぁ
 
aleks557:
MQl5のチャートに、ローソク足やインジケーターのシグナルを叩いている奴とか、そんな感じのアニメーションを追加できないかなぁ
アニメーションは、たくさんの交互に並んだ.bmp画像から手動で作成する必要があります。通常、点の配列からキャンバス上に描かれる。
 
barabashkakvn:
アニメーションは、多数の連続した.bmp画像から手動で作成する必要があります。あるいは、キャンバス上のドットの配列から描画する。

リトルドワーフさん、「KANVAS」はどこ ですかアニメーションは Photoshopでやるのは知っていますが、「KANVAS」は行って いません、そこでチケットを買うにはどう したらいいのでしょうか?

ググったら乳製品に行き着いたから。

 
aleks557:

リトルドワーフさん、「KANVAS」はどこですか? アニメーションはPhotoshopでやるのは知っていますが、「KANVAS」は行って いません、そこでチケットを買うにはどう したらいいのでしょうか?

乳製品をググってみました。

CCanvas はカスタムグラフィックスを作成するためのクラス です。

使用例、MetaEditorからのパス: ...\MQL5Script╱Examples╱Canvas╱。

 
aleks557:
MQl5では、チャートにアニメーションを付けることができるのかな?

こちらもどうぞ。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

初心者の方からの質問

レナート, 2012.10.20 14:30

私たちのカンヴァスのバックバッファリングと画面上のオブジェクトへのリンクの完璧なヒントをご存知ですか?

フレームを完璧に、素早く、アーティファクトなく描画することができるのです。OpenCL Testの フレームシーケンス生成に基づくビデオ例を見てみましょう。

素敵な戦術を使う。

  1. チャート上にBitmap Labelグラフィックオブジェクトを作成します。

       string objname ="OpenCL_"+IntegerToString(ChartID());
       string resname ="::Mandelbrot_"+IntegerToString(ChartID());
    //--- creating the object for graphics display
       ObjectCreate(0,objname,OBJ_BITMAP_LABEL,0,0,0);
       ObjectSetInteger(0,objname,OBJPROP_XDISTANCE,4);
       ObjectSetInteger(0,objname,OBJPROP_YDISTANCE,26);
    

  2. メモリ上に空のグラフィカルリソースを作成し、以前に作成したオブジェクトにバインドします。

    //--- create initial empty picture
       uint buf[];
    
       ArrayResize(buf,SIZE_X*SIZE_Y);
       ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
       ObjectSetString(0,objname,OBJPROP_BMPFILE,resname);
    
    ここでマジックが起こるのです。グラフィカルオブジェクトは、グラフィカルリソースへの直接バインディングを受け取ります。そして、このバインディングは、ページングとバックバッファを素早く処理するために特別に作られたものなので、キャッシュを使ったインテリジェントなものとなっています。

  3. これで、画面上のオブジェクトへのバインディングを気にすることなく、簡単にバッファに描画することができるようになりました

    //--- рисуем что хотим в buf
    ....
    
  4. そして、この更新されたビットマップを画面に表示するときです。

          //--- saving the frame in memory and drawing it
          ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
          ChartRedraw();
    
    そのために、リソースを「再構築」し(実際には、すべてのサイズが同じなので、再構築は起こりません)、新しいビットマップをコピーし、このリソースの変更カウンターをインクリメントします。

    グラフィカルオブジェクトobjname自体は、すでにリソースと関連付けられているので、どのような方法でもタッチされないことに注意してください。

    そして、グラフィカルオブジェクトの描画を必要とするChartRedrawを介して、Screen Redrawを呼び出します。ビットマップの変更カウンターを使用して制御するリソースにバインドされています。グラフィカルオブジェクトに保存されたビットマップの変更カウンターがリソースのカウンターと一致しない場合、ビットマップは自動的にグラフィカルオブジェクトにコピーされ、保護された方法で視覚化されます。カウンタが一致すれば、そのまま表示されます。

これは、レンダリングフレームを安全に(MQL5と端末のレンダリングシステム自体からの同時アクセスから)、かつ迅速に作業するためのシンプルな方法です。

ぜひ試してみてください。
理由: