#include <Trade\Trade.mqh>
CTrade trade;// Объект trade в глобальной области программыintOnInit()
{
trade.SetExpertMagicNumber(123);
}
voidOnTick()
{
CTrade *trade_ptr=GetPointer(trade);// Указатель на объект trade
trade_ptr.Buy(0.1);
}
double X(double bar); // The X coordinate by the bar number. The bar number must be of type double, otherwise, the bar will be interpreted as time.double X(datetime Time); // The X coordinate by the time.double Y(double Price); // The Y coordinate by the price.double Price(int y); // Price by the Y coordinatedouble Bar(int x); // bar number by coordinate X datetime TimePos(int x); // time by coordinate X double Close(int x);
double Open(int x);
double High(int x);
double Low(int x);
void Comm(string text); // Print commentvoid TextPosition(int x,int y); // Setting the XY position for comment output in pixelsvoid TextPosition(double x,double y); // Setting the XY position for outputting comments as a percentage of the width and height of the windowvoid CurentFont(string FontName="Courier New",int size=18,int LineStep=20,color clr=clrDarkOrchid,double transp=1.0); // Set font options for comment. LineStep - step between lines. transp - transparency from 0 to 1void LineD(double x1,double y1,double x2,double y2,constuint clr); // тоже самое что и Line в CCanvas, только без глюков и с double координатамиint TextPosX; // Position X for comment textint TextPosY; // Position Y for comment textint StepTextLine; // line spacing for commentuint TextColor; // Font color for comment
Данная библиотека и класс iCanvas упростит написание программ с применением Canvas. Вот пример простого индикатора с применением данной библиотеки и его демонстрация. Обратите внимание, что в данном примере в теле индикатора отсутствует функция обработки событий OnChartEvent. Но она также может и присутствовать. Особенности данной библиотеки...
はい?独立した新しいオブジェクトが作成されるのでは?
では、確認してみましょう。このような行を挿入します。
のみならず
とテストスクリプトがあります。
結果
1つのオブジェクトが作成され、次に2番目のもの(それはないレクリエーションがあることが判明 - 新しいものが作成されます)、BUY位置はマジック "0 "で開かれます - つまり、2番目のオブジェクト "貿易 "はそれをオープンしました。
すると、2つのオブジェクトは逆順に破壊されることがわかる。まず2番目のオブジェクト(魔法「0」)、次に1番目のオブジェクト(魔法「123」)である。
はい?独立した新しいオブジェクトが作成されるのでは?
はい、CTrade クラスの新しいインスタンスが作成されます。
さらに、CTradeのデストラクタはvoid OnTick() の終了 時に呼び出され、次のOnTick()ではCTradeのコンストラクタが再び呼び出さ れることになります。
はい、CTrade クラスの新しいインスタンスが作成されます。
void OnTick() を抜けるとCTradeデストラクタが呼ばれ、次のOnTick()では再びCTradeコンストラクタが呼ば れます。
はい、アルテムさんの回答の後、すぐに気づきました。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
小学生向けOOP。
アルチョム・トリシキン さん 2019.10.08 20:23
変数のときとまったく同じです。
そして、フォーカス。
私見ですが、mqlはOOPで解決すべきタスクが非常に狭いと思います。この言語自体は、C++か何かのOOPに過ぎないように思います。そしてこのOOPは、標準ライブラリという形で提供されています。そして、このOOPに、そうでなければ言わないが、別のOOPを追加することが提案されている。そして、もう一歩...。正しくウォーロックは、怒っているが、慈悲深い、私のタスクのために、OOPは犬のターンテーブルのようなものです。また、問題のないこの問題が手続き型で解決できるのであれば、OOPによる問題設定とその後の実現に何の意味があるのでしょう。
例えば、fxsaber`aから.mqhを取得して、MT4用と同様にMT5用のコードを記述する場合です。多分、誰かが必要としているのでしょうが、誰を見ているのでしょう。mql5を使いたくない人、どうしても使いこなせない人。あるいはニコライのiCanvasを・・・彼の名字は忘れました。便利なライブラリのようですが、わかりにくいし、ちょっとした説明書すらありません。文句じゃなくて、ごめんね、ニコライ、事実なんだ。だから、グラフィカルなラベルを書いてみようと思ったとき、標準ライブラリもニコライのライブラリも参照しない方が書きやすかったんです。
実は、Alexey さん、iCanvas については、KB.https://www.mql5.com/ru/code/22164 の説明ページで十分な情報を得ることができるのです。 コードのコメントをよく研究する必要があります。すべての関数の意味は、その名前から直感的に理解できる。
でも、そうかもしれませんね。iCanvasを使った簡単で便利なインジケータを書いたビデオを録画して、このクラスの機能を視覚的に説明する必要があります。まだ微妙なところがありますね。
正直なところ、今のiCanvasの書き方は好きではありません。くしゃくしゃにしてゴミ箱に捨てて、もっと正しい文体に書き直したい。
このライブラリのコードの70%は、座標やデータアクセスの処理に必要な通常の関数の一部を高速化したものです。
ですから、このクラスを適用すれば、CCanvasで「真正面から」やるよりも、グラフィックスは高速になります。それが最大の特徴であり、利点です。もちろん、グラフや図、コメントの形成も実に簡単です。
また、fxsaberや私の出版物を含むCodeBaseの多くの出版物の目的は、「ただ共有すること-必要な人はそれを理解するだろう」という無私のものであることを、Alexey、付け加えておきたいと思います。そのため、細かい指示に時間を費やすことは、単に億劫になることが多いのです。
特にフォーラムでは、iCanvasを使った短くてわかりやすい例をたくさん載せています。
たとえば、ここ。
https://www.mql5.com/ru/code/25929
https://www.mql5.com/ru/code/25113
https://www.mql5.com/ru/code/25414
https://www.mql5.com/en/code/24798
https://www.mql5.com/ru/forum/227736/page41#comment_13259627
https://www.mql5.com/ru/forum/227736/page24#comment_12836622
https://www.mql5.com/en/forum/323629#comment_13442470
https://www.mql5.com/ru/forum/321704#comment_13131995
https://www.mql5.com/ru/forum/317257/page3#comment_12341593
https://www.mql5.com/en/forum/229521/page2#comment_10258148
実は、アレクセイ、iCanvas についての情報は KB の説明ページで十分に得ることができます。https://www.mql5.com/ru/code/22164。 コードのコメントをよく研究する必要があります。す べての機能の意味は、その名前から直感的に理解できる。
ニコライ、私の言葉など気にすることはない。プログラミングを勉強している人の中には、私みたいな人は、私一人でなければ、まったく注目する価値もないくらい少ないですからね。
私がコードでコメントを学ぶには、まずAglitskyを学ばなければなりません))。
もし緊急の必要があれば、時間をかけてすべてのコメントを翻訳し、機械翻訳を理解しようと努め、修正を加えることができます。 しかし、そのような必要はないのです。
例えば、fxsaber`aから.mqhを取り出し、MT4だけでなくMT5用のコードも記述することができます。たぶん、誰かが必要としているのでしょう。でも、誰だか見てください...mql5を使いたくない人、どうしても使いこなせない人。
MQL5は結構知っているつもりなのですが、トレーディングライブラリのニーズがあるんです。MT4スタイルの話ではなく、MT5用のトレーディングライブラリで、快適かつ高速に作業できるようなものを考えています。また、このライブラリは実際の取引でバグが発生することはありません。
そのようなライブラリは公開されていない(存在するかどうかもわからない)ので、自分で開発する必要がありました。そのために、トレーディング 機能のセットという形で、どのような ツールを作るかを決めなければなりませんでした。MT4-setを借りた、かなり良いものとして。それが、おまけに、ライブラリーにドキュメントを書かず、勉強することが可能になったのです。その他のグッズも。
そのため、ユーザーの間ではMQL5に対する知識は高いレベルにあることもあります。