MQL5への願い - ページ 100

 
YuraZ >> :

printf 関数があるんですね

とか、sprintfも あるといいなぁとか。

おそらく、StringFormat() 関数で代用できるだろう。

文字列フォーマット

受け取ったパラメータを整形し、文字列を返す。

文字列 StringFormat(
string format, // フォーマット文字列
... ... // パラメータ
);

パラメータ

形式

[フォーマット方法を含む文字列。書式規則はPrintFormatと 同じである。

...

[in] パラメータをカンマで区切って指定します。

戻り値

文字列です。


 
Rosh писал(а)>>

もしかしたら、StringFormat() 関数がその代わりになるかもしれません。

StringFormat関数は、PrintFormatやprintfと同様に、sprintfの同義語を割り当てるべきと理解しています。しかし、この場合、snprintf関数も実装する必要があります。

 
Rosh >> :

MQL5のヘルプにはこう書かれています。


うんうん...オブジェクトを扱うことができないインジケータでは、このイベントのみです。

そのようなインジケータをExpert Advisorとして実装してほしいという依頼がありました。しかし、エキスパートは変更されたバーを数えることはできません(OnCalculate)。

 
Roffild писал(а)>>

うんうん...このイベントだけは、(まだ?)オブジェクトの操作を禁止しているインジケータを 対象としています。

そのようなインジケータをExpert Advisorとして実装してほしいという依頼がありました。しかし、Expert Advisorでは、変更したバーを計算する機能(OnCalculate)は使用できません。

OnCalculateでは、前回のOnCalculateの 呼び出しによって返された処理済みバーの数prev_calculatedを渡します。Expert Advisor で処理されたバーをカウントするには、グローバル変数または静的ローカル変数を使用します。

 
stringo >> :

OnCalculateにおいて、処理されたバーの数 prev_calculated、これはOnCalculateの 前の呼び出しによって返されます。Expert Advisor では、グローバル変数または静的ローカル変数を使用して、自分で処理したバーを数えることができます。

Expert Advisorで、ユーザーがチャートのタイムフレームを変更したことを知り、すべてのバーを再計算することはできますか?

指標にはそのような問題はありません。

 
Roffild писал(а)>>

ユーザーがチャートのタイムフレームを変更したため、すべての バーを再計算する必要があることをEAで知ることができますか?

はい、できます。まず、古いパラメータでOnDeinit関数が呼び出され、次に新しいパラメータでOnInit関数が呼び出されます。

 
多くの人が "エキスパート "のインジケータを書き換える必要があるため、エキスパートが"データウィンドウ"にデータを表示できるようにする。
 

mql5には、構文の強調表示、さらに重要なこととして、閉じるときの括弧(一対の括弧は閉じることができる)、関数とテキストの置換、コマンドの記述と比較記号の構文の修正 >=,<=,=<,=>、エキスパートアドバイザーに追加のウィンドウを接続する可能性 - 例えば、ObjWindowCreate(string Name, bool TypeWindow=false) [false - インディケータウィンドウ、true - 通貨ペアの別のウィンドウとして]が欲しいです。

また、NotePade++からエディターインターフェイスを取り入れることをお勧めします。

関数コードにチェックを入れ、関数タイトルに対して左パネルのマイナス記号をクリックすることで、関数のテキストを隠したり開いたりできるようにしたいです。

LineTypeとして変数のタイプを追加 - EAのプロパティは、その設定で表示されるラインのタイプを個別に選択できるようにする

EAが動作しているときに、設定の初期化用に別のintを作成する場合 - 例 int OnChangeProperty() { return(0)}.

AccountMaxLot()のような関数を追加 - クライアントの現在の最大入札可能額

また、注文作成画面に、選択したロットの必要量を表示するラベルを追加することができれば良いと思います

特定の注文の現在の利益を、スプレッドとスワップを考慮した場合と考慮しない場合で表示する関数を作成する - 例えば int CalculateProfitOrder(int OrderNumberHistoryList, bool spred=false, bool swop=false)

ここで、番号は有効なオーダーのリストにおけるオーダー番号である。

文字列変数のユニコード化と挿入機能 - 文字列 CharUTF(string Font, string 'u+0021') u+ はユニコードのヘッダー、0021 はシンボルテーブルのシンボルのコードです。

または文字列 CharUTF(string Font, string U'0021') のように、ヘッダ U'xxxxx' を持つ日付や色のような文字表現をインタープリタに追加する方がよいでしょう。

また、文字列を翻訳する関数として、文字列 CharToUtf(string Text)、文字列 UtfToChar(string UtfText)を作成しました。

また、一般的にアバターは種類別に表記した方が利便性が高いでしょう。

Expert AdvisorのOnInit()を有効にする

Expert Advisor の電源を切る OnDeinit()

タイムフレームの変更 OnChangeTimeFrame(int TimePeriod=Period())

ズーム変更 OnChangeZoom( int CountBarPerWindow=WindowBarsPerChart())

新価格 OnNewPrice()

新規ウィンドウの作成 OnCreateNewWindow(string NameWindow, int IndexWindow=WindowFind(NameWindow), bool TypeWindow=false)

投資家依頼の受信 int OnInvestor (int IndexInvestor - 投資家ID(口座番号)、string NameInvestor - 投資家の説明、 ...... - OrderSend( return(Id Create Order) ) コマンドのカンマ区切りパラメータ)

注文の作成 - OnCreateOrder (int IndexOrder=OrderNumberHistoryList)

注文の編集 - OnModifyOrder (int IndexOrder=OrderNumberHistoryList)

TP、SL、日付、または手動で注文を閉じるイベント OnOrderClose (int TypeCloseOrder= CLOSEMODE_ [TP, SL, Date, Manual], int IndexOrder=OrderNumberHistoryList, bool PriceType=true)

ここで、PriceTypeは注文閉鎖のフラグである true - 正の注文残高で取引 false - 負の注文残高で取引

ファイル:
 
すでにどこかのEAで実装されているのかもしれませんが、基本バージョンで、オープンポジションやペンディングポジションがあるチャートのラベルが特定の色でハイライトされるようにしてほしいです。例えば、オープンポジション があるチャートラベルは黄色でハイライトされ、価格がT/Pに近づくと緑で、S/Lに近づくと赤で、それぞれ表示されます。また、必要なショートカットを色でマークしておくと非常に便利です。これは、複数の(多くの、またはすべての)楽器を扱うときに非常に便利です。土曜日と日曜日は、分析をして、シグナルを待つペアを選び、きれいな色でマークして、それを見ています。
 

そして、プロファイルの名前が報告されている富士山の下部に、課されたテンプレートの名前を追加することができるのでしょうか?

プロファイル名とので、プロファイルのリストで見ることができます(あなたがどこにいるかを知るために常にチェックマークがあります)が、どのテンプレートが今重畳されていない。