初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1362 1...135513561357135813591360136113621363136413651366136713681369...1503 新しいコメント Aleksei Stepanenko 2021.10.17 14:32 #13611 そして、2つのファイルを別々にMarketに入れることはできません。それがポリシーです。 Dmitriy VC 2021.10.17 14:39 #13612 Aleksei Stepanenko #:これがその指標です。ここに専門家がいます。ここでは、すべてを1つのファイルにまとめています。 4もそうだが、5もそうだ。 Expertファイルのみコンパイルしています。 Expert Advisorから呼び出されるように、少なくとも簡単なグラフィックオブジェクトでインジケータを埋めてみてください。そして、コンパイル後、Expert Advisor ファイルのみをマーケットに送信したかのように Res_Ind.ex4 をリネームまたは削除してください。クライアントは、非機能的なプログラムを受け取ることになります。 Dmitriy VC 2021.10.17 14:39 #13613 Aleksei Stepanenko #: そして、2つのファイルを別々にMarketに入れることはできません。それがポリシーです。 そういうことなんだ...。 Alexey Viktorov 2021.10.17 14:54 #13614 Dmitriy VC #:Expertファイルだけコンパイルされていますね。Expert Advisorから呼び出されるように、少なくとも簡単なグラフィカルオブジェクトでインジケータを埋めてみてください。その後、コンパイル後に Res_Ind.ex4 をリネームまたは削除し、あたかも Expert ファイルのみを Market へ送信したかのようにします。クライアントは、動作しないプログラムを取得することになります。 そんな頑固なことはできません・・・リソースで接続されたインジケータはExpert Advisorの実行ファイルに含まれていると書いてありますから、そうなのでしょう。 しかし、あなたのインジケータがグラフィカルなオブジェクトを描き、EAがそれを読まなければならないという事実は大きな問題です。グラフィックオブジェクトはビジュアライゼーションを使ったテスト時のみで、オートバリデーターはビジュアライゼーションを使わないテストなので、オブジェクトのプロパティが見えないんです...。 Dmitriy VC 2021.10.17 16:18 #13615 Alexey Viktorov #:リソースで接続されたインジケータはEAの実行ファイルに含まれるそうなので、そうなんですね。 インジケータを別ウィンドウ で表示 //+------------------------------------------------------------------+ //| win.mq5 | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window #property indicator_plots 0 //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { IndicatorSetString(INDICATOR_SHORTNAME,"win"); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ コンパイルインジケータ→win.ex5. リソースにインジケータを持つ専門家 //+------------------------------------------------------------------+ //| exp.mq5 | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #resource "\\Indicators\\win.ex5" char number = -1; int handle = INVALID_HANDLE; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if(number<0) { handle=iCustom(_Symbol,_Period,"win.ex5"); number=char(ChartGetInteger(0,CHART_WINDOWS_TOTAL)); if(handle!=INVALID_HANDLE) { ChartIndicatorAdd(0,number,handle); } } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- if(reason==REASON_REMOVE) { ChartIndicatorDelete(0,int(ChartWindowFind(0,"win")),"win"); } } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ Expert Advisor をコンパイルする--> exp.ex5. Expert Advisorを実行すると、チャート上にインジケータウィンドウが表示されます。 Expert Advisor exp.ex5の1ファイルをMarketに公開する(実際にはインジケータファイルwin.ex5を削除)。 Expert Advisorを起動すると、チャート上にインジケータウィンドウがありません。 削除したファイルwin.ex5を復元する。 Expert Advisorを復元すると、チャートにインジケータウィンドウが 表示されます。 結論:Expertコードにインジケーターコードは含まれない。リソースIndicatorを使用したExpert Advisorを正常に動作させるためには、リソースで指定されたIndicatorの実行ファイルが必要です。 質問を繰り返す。 カスタムインジケータ、ライブラリを持つエキスパートがある場合、マーケットに公開する方法は? ファイル: win.mq5 2 kb exp.mq5 4 kb Alexey Viktorov 2021.10.17 16:21 #13616 Dmitriy VC #:インジケータを別ウィンドウ で表示 コンパイルインジケータ→win.ex5.リソースにこのインディケータを持つ専門家Expertを コンパイルする--> exp.ex5.Expert Advisorを実行すると、チャート上にインジケータウィンドウが表示されます。Expert Advisor exp.ex5の1ファイルをMarketに公開する(実際にはインジケータファイルwin.ex5を削除)。Expert Advisorを起動すると、チャートにインジケータウィンドウがありません。 削除したファイルwin.ex5を復元する。Expert Advisorを復元すると、チャートにインジケータウィンドウが 表示されます。 結論:Expert コードにインジケータのコードは含まれない。リソースIndicatorを使用したExpert Advisorを正常に動作させるためには、リソースで指定されたIndicatorの実行ファイルが必要です。質問を繰り返す。 Expert AdvisorにカスタムIndicator、ライブラリ、つまりExpert Advisorの正常な動作に必要なファイルが複数ある場合、どのようにマーケットに公開しますか? ドキュメンテーションへのリンクは何度目でしょうか?お母さんは読ませてくれないの? handle=iCustom(_Symbol,_Period,"win.ex5"); // Это делается не так!!!! やっと読めた...。 Dmitriy VC 2021.10.17 16:55 #13617 Alexey Viktorov #:ドキュメンテーションへのリンクは何度目でしょうか?お母さんが読ませてくれないの?やっと読めた...。 Alexeyさん、直接ミスを指摘していただきありがとうございます。 ドキュメントを読んでも、「目の届かないところにある」状態でした。 皆さんには申し訳ないのですが、私が間違っていました。 今、手に入れました。 Mikhail Toptunov 2021.10.17 17:34 #13618 ヒントを教えてください。 クラスに小節数の 計算(:RatesTotal(void))を追加、構造に正しくフィットする方法がわからない。こんな感じです。もっとカラフルにする方法を教えてください。 #include <Arrays\ArrayObj.mqh> /********************************************************************\ | Класс Новый бар | \********************************************************************/ class CNewBar : public CObject { private: string m_symbol; ENUM_TIMEFRAMES m_timeframe; datetime m_time; long m_rt; datetime Time(void); long RatesTotal(void); string Symbol(void) { return this.m_symbol; } public: ENUM_TIMEFRAMES Timeframe(void) { return this.m_timeframe; } datetime GetTime(void) { return this.m_time; } // Возвращает время последнего обращения long GetRatesTotal(void) { return this.m_rt; } bool IsNewBar(void); // Основная функция класса CNewBar(const string symbol,const ENUM_TIMEFRAMES timeframe); ~CNewBar(void) {;} }; //+------------------------------------------------------------------+ //| Конструктор | //+------------------------------------------------------------------+ CNewBar::CNewBar(const string symbol,const ENUM_TIMEFRAMES timeframe) : m_time(0) { this.m_symbol = symbol; this.m_timeframe = (timeframe == PERIOD_CURRENT ? Period() : timeframe); } //+------------------------------------------------------------------+ //| Возвращает количество баров в истории | //+------------------------------------------------------------------+ long CNewBar::RatesTotal(void) { //---- получим количество баров long rt=SeriesInfoInteger(this.m_symbol, this.m_timeframe,SERIES_BARS_COUNT); //---- Проверка количества if(rt<1) Print("Error "+__FUNCTION__+" Не определенно кол-во баров ",this.m_symbol," ",this.m_timeframe); //---- return(rt); }; //+------------------------------------------------------------------+ //| CNewBar IsNewBar Основная функция класса | //+------------------------------------------------------------------+ bool CNewBar::IsNewBar(void) { m_rt=this.RatesTotal(); datetime tm=this.Time(); if(tm==0 || m_rt<1) return false; if(tm!=this.m_time) { this.m_time = tm; return true; } return false; } Aleksei Stepanenko 2021.10.17 19:04 #13619 Dmitriy VC #:今はもう解決しています。 知らなかったんだ、知らなかったんだ。全く問題ありません :) Mikhail Toptunov 2021.10.18 11:48 #13620 prev_calculatedの計算のアナログを整理する方法を教えてください、解りません。 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CNewBar::PrevCalculated(void) { int pc=this.m_rt return(pc) } //+------------------------------------------------------------------+ //| CNewBar IsNewBar Основная функция класса | //+------------------------------------------------------------------+ bool CNewBar::IsNewBar(void) { datetime tm=this.Time(); if(tm==0 || m_rt<1) return false; if(tm!=this.m_time) { //--- определяем время this.m_time = tm; //--- определяем кол-во this.m_rt=this.RatesTotal(); return true; } return false; } 1...135513561357135813591360136113621363136413651366136713681369...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これがその指標です。
ここに専門家がいます。
ここでは、すべてを1つのファイルにまとめています。
4もそうだが、5もそうだ。Expertファイルのみコンパイルしています。
Expert Advisorから呼び出されるように、少なくとも簡単なグラフィックオブジェクトでインジケータを埋めてみてください。そして、コンパイル後、Expert Advisor ファイルのみをマーケットに送信したかのように Res_Ind.ex4 をリネームまたは削除してください。クライアントは、非機能的なプログラムを受け取ることになります。
そして、2つのファイルを別々にMarketに入れることはできません。それがポリシーです。
Expertファイルだけコンパイルされていますね。
Expert Advisorから呼び出されるように、少なくとも簡単なグラフィカルオブジェクトでインジケータを埋めてみてください。その後、コンパイル後に Res_Ind.ex4 をリネームまたは削除し、あたかも Expert ファイルのみを Market へ送信したかのようにします。クライアントは、動作しないプログラムを取得することになります。
そんな頑固なことはできません・・・リソースで接続されたインジケータはExpert Advisorの実行ファイルに含まれていると書いてありますから、そうなのでしょう。
しかし、あなたのインジケータがグラフィカルなオブジェクトを描き、EAがそれを読まなければならないという事実は大きな問題です。グラフィックオブジェクトはビジュアライゼーションを使ったテスト時のみで、オートバリデーターはビジュアライゼーションを使わないテストなので、オブジェクトのプロパティが見えないんです...。
リソースで接続されたインジケータはEAの実行ファイルに含まれるそうなので、そうなんですね。
インジケータを別ウィンドウ で表示
コンパイルインジケータ→win.ex5.
リソースにインジケータを持つ専門家
Expert Advisor をコンパイルする--> exp.ex5.
Expert Advisorを実行すると、チャート上にインジケータウィンドウが表示されます。
Expert Advisor exp.ex5の1ファイルをMarketに公開する(実際にはインジケータファイルwin.ex5を削除)。
Expert Advisorを起動すると、チャート上にインジケータウィンドウがありません。
削除したファイルwin.ex5を復元する。
Expert Advisorを復元すると、チャートにインジケータウィンドウが 表示されます。
結論:Expertコードにインジケーターコードは含まれない。リソースIndicatorを使用したExpert Advisorを正常に動作させるためには、リソースで指定されたIndicatorの実行ファイルが必要です。
質問を繰り返す。
カスタムインジケータ、ライブラリを持つエキスパートがある場合、マーケットに公開する方法は?
インジケータを別ウィンドウ で表示
コンパイルインジケータ→win.ex5.
リソースにこのインディケータを持つ専門家
Expertを コンパイルする--> exp.ex5.
Expert Advisorを実行すると、チャート上にインジケータウィンドウが表示されます。
Expert Advisor exp.ex5の1ファイルをMarketに公開する(実際にはインジケータファイルwin.ex5を削除)。
Expert Advisorを起動すると、チャートにインジケータウィンドウがありません。
削除したファイルwin.ex5を復元する。
Expert Advisorを復元すると、チャートにインジケータウィンドウが 表示されます。
結論:Expert コードにインジケータのコードは含まれない。リソースIndicatorを使用したExpert Advisorを正常に動作させるためには、リソースで指定されたIndicatorの実行ファイルが必要です。
質問を繰り返す。
Expert AdvisorにカスタムIndicator、ライブラリ、つまりExpert Advisorの正常な動作に必要なファイルが複数ある場合、どのようにマーケットに公開しますか?
ドキュメンテーションへのリンクは何度目でしょうか?お母さんは読ませてくれないの?
やっと読めた...。
ドキュメンテーションへのリンクは何度目でしょうか?お母さんが読ませてくれないの?
やっと読めた...。
Alexeyさん、直接ミスを指摘していただきありがとうございます。
ドキュメントを読んでも、「目の届かないところにある」状態でした。
皆さんには申し訳ないのですが、私が間違っていました。
今、手に入れました。
ヒントを教えてください。
クラスに小節数の 計算(:RatesTotal(void))を追加、構造に正しくフィットする方法がわからない。こんな感じです。もっとカラフルにする方法を教えてください。
今はもう解決しています。
知らなかったんだ、知らなかったんだ。全く問題ありません :)
prev_calculatedの計算のアナログを整理する方法を教えてください、解りません。