MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 845 1...838839840841842843844845846847848849850851852...1953 新しいコメント Igor Makanu 2019.05.18 11:33 #8441 Anatoliy Ryzhakov: こんにちは。履歴の中の最後尾の注文の 型値を返す方法を教えてください。最後に閉じた注文の時刻を見つけて、最大閉時刻で、最後に記憶した時刻より小さい注文を検索する必要があります、これは私がやったことです。 https://www.mql5.com/ru/forum/247136#comment_7555643 私の例ではチケットが検索されたので、チケットの代わりに注文のタイプを返す必要があります。 История ордеров 2018.05.24www.mql5.com Всем привет! Столкнулся с проблемой... сделал робота, который читает историю и открывает сделку... Seric29 2019.05.18 17:23 #8442 c++からmql4にエクスポートする関数に テンプレートを適用することは可能でしょうか? 拡張子が "srp "の通常型のファイルを作り、そこにプリミティブな関数を書きました。 #define MT4_EXPFUNC extern "C++" __declspec(dllexport) MT4_EXPFUNC int __stdcall add(int a=0, int b=0)//stdcall //cdecl {return (18);} そして、拡張子が「def」のファイルを作成し、エクスポートする関数名を指定しました。 LIBRARY "dllmt42" EXPORTS add そして、Build - Build Solutionで実行しました。これから配列を扱う関数を開発するので、テンプレートを適用したいのですが、テンプレートがないとどうにもなりません。 #define MT4_EXPFUNC extern "C++" __declspec(dllexport) template<typename T>MT4_EXPFUNC int __stdcall add(T a=0, T b=0){ return (18);} Tは強調表示されていますが、エラーヘルプアドバイスがあることを書き込み、それが可能である、再配置しようとしましたか?また、このような関数はmql4側からどのように呼び出されるのでしょうか? Sergey Voytsekhovsky 2019.05.19 18:29 #8443 Roman Shiredchenko:コードベースを見る - MT4では間違いなくそうでした。トップページのこのスレッドにね。 Sergey Voytsekhovsky 2019.05.19 19:49 #8444 こんばんは。MT5の勉強と学習の過程で、一般的に困難ではないタスクを実装しようとするが、少し経験と知識のギャップ......一般的に動作しませんが、ヘルプと支援をお願いします。 私はインジケーターとエキスパートアドバイザーを持っていますが、どちらもオープンソースのコードで、同じ作者(Artem Trishkin、尊敬と称賛)によるものです。インジケータに尋ねる時に実際の方向を取得するようにしています。インジケーターは、この方向を上下の矢印で表示します。得られた方向は、Expert Advisorがシグナルとして、またはフィルターとして使用されますが、まだ遠いです。 インジケーターのハンドルは手に入れたのですが、インジケーターからの矢印のデータ値がぐちゃぐちゃで、わかりません。 インジケータは変更していません。 Expert AdvisorにOnInitを追加しています。 CrossAD = iCustom(asymbol.Name(), _Period, "iCrossAD"); if (CrossAD == INVALID_HANDLE) { Print("Не удалось создать описатель индикатора iCrossAD!"); return(INIT_FAILED); } else Print("Хендл iCrossAD = ",CrossAD); OnTickを追加しました。 int n=0; if (CopyBuffer(CrossAD, 1, 0, period_find, Buf_Arrow_Buy) != period_find || ArraySize(Buf_Arrow_Buy) != period_find) { Print("НЕ удалось правильно скопировать данные из 2-го буфера индикатора iCrossAD, error code %d",GetLastError()); } else for(n=0; n<period_find; n++) { if(Buf_Arrow_Buy[n]!=EMPTY_VALUE)break; } Last_Arrow_Buy_volume = Buf_Arrow_Buy[n]; Last_Arrow_Buy_index = n; Print("Last_Arrow_Buy_volume = ",Last_Arrow_Buy_volume,", Last_Arrow_Buy_index = ",Last_Arrow_Buy_index); if (CopyBuffer(CrossAD, 2, 0, period_find, Buf_Arrow_Sell) != period_find || ArraySize(Buf_Arrow_Sell) != period_find) { Print("НЕ удалось правильно скопировать данные из 3-го буфера индикатора iCrossAD, error code %d",GetLastError()); } else for(n=0; n<period_find; n++) { if(Buf_Arrow_Sell[n]!=EMPTY_VALUE)break; } Last_Arrow_Sell_volume = Buf_Arrow_Buy[n]; Last_Arrow_Sell_index = n; Print("Last_Arrow_Sell_volume = ",Last_Arrow_Sell_volume,", Last_Arrow_Sell_index = ",Last_Arrow_Sell_index); もちろん、適切なオーバーペン、アレイ、タイムスリールやtdとして定義されたものを記述し、起動したのですが......。 コメントと プリントを使用して確認しました。すぐにではありませんが、エラーはなく、警告が数回出るだけで、よくわかりません。しかし、肝心なのは、パラメータの定義が正しくないということです。以下の条件にもかかわらず、上向き矢印の場合は最大2倍、下向き矢印の場合はいくつかの負の数が出力されます。 if(Buf_Arrow_Buy[n]!=EMPTY_VALUE)break; и if(Buf_Arrow_Sell[n]!=EMPTY_VALUE)break; Sergey Voytsekhovsky 2019.05.19 19:52 #8445 以下はそのファイルです。 ファイル: TestDoEasyPart08_new.mq5 92 kb iCrossAD.mq5 49 kb Artyom Trishkin 2019.05.19 20:17 #8446 Sergey Voytsekhovsky: 以下はそのファイルです。テストに不要な機能がたくさんある記事からパクるのではなく、簡単なテスト用EAでインジケータからのデータ取得をテストすることから始めるといいでしょうね。 MQL Wizardで簡単なExpert Advisorを作成し、それを使ってiCustom()を使った 練習をするだけです。 Alexey Viktorov 2019.05.20 06:26 #8447 Sergey Voytsekhovsky:こんばんは。MT5の勉強と学習の過程で、一般的に困難ではないタスクを実装しようとするが、少し経験と知識のギャップ......一般的に動作しませんが、ヘルプと支援をお願いします。 私はインジケーターとエキスパートアドバイザーを持っていますが、どちらもオープンソースのコードで、同じ作者(Artem Trishkin、尊敬と賞賛)によるものです。インジケータに尋ねる時に実際の方向を取得するようにしています。インジケーターは、この方向を上下の矢印で表示します。得られた方向は、Expert Advisorがシグナルとして、またはフィルターとして使用されますが、まだ遠いです。 インジケーターのハンドルは手に入れたのですが、インジケーターからの矢印のデータ値がぐちゃぐちゃで、わかりません。 インジケータは変更していません。 Expert AdvisorにOnInitを追加しています。 OnTickを追加しました。 もちろん、適切なオーバーペン、アレイ、タイムスリールやtdとして定義されたものを記述し、起動しました......。 コメントと プリントを使用して確認しました。すぐにではありませんが、エラーはなく、警告が数回出るだけで、よくわかりません。しかし、肝心なのは、パラメータの定義が正しくないということです。以下の条件にもかかわらず、上向き矢印の場合は2倍の最大数、下向き矢印の場合はいくつかの負の数が印刷されます。 Artyomは正しく、私は1つの比較の無駄を指摘します。 if (CopyBuffer(CrossAD, 1, 0, period_find, Buf_Arrow_Buy) != period_find || ArraySize(Buf_Arrow_Buy) != period_find) CopyBuffer が配列にコピーされた要素数を返す場合、配列のサイズはまさにその通りになります。したがって、強調表示された部分は、最初の条件と単純に重複していることになります。 あと、思いつきですが、インジケーターやEAのコードを見てないので、間違っているかもしれません。period_findの範囲に信号があるはずですが、本当にそうでしょうか? Artyom Trishkin 2019.05.20 06:47 #8448 Alexey Viktorov:アルチョムは正しく、一つの比較の不必要さを指摘する CopyBuffer が配列にコピーされた要素数を返す場合、配列のサイズはまさにその通りになります。これに対応して、選択された部分の条件は、最初の条件を単純に複製したものになります。 思いつきです:インジケーターやExpert Advisorのコードを確認していないので、間違っているかもしれません。period_findの範囲に信号があるはずですが、本当にそうでしょうか?そうですね。フィルターのようなもので、信号の周波数はこれに依存します。 Sergey Voytsekhovsky 2019.05.20 08:48 #8449 Artyom Trishkin:テストに不要な関数がたくさんある記事からパクるのではなく、簡単なテスト用EAでインジケータからデータを取得するテストから始めるといいでしょう。 iCustom() 関数を使用するとより便利です。ありがとうございます、良いアドバイスですね、そうしてみます、少なくとも便利になりますね。 今日から始めます。 erotin 2019.05.20 10:56 #8450 ロットの配給のどこが悪いのか、教えてください。 double lot_=0.01; double minlot=0.10; double LotNormalize(double lot_) { if(minlot==0.001) { return(NormalizeDouble(lot_,3)); } if(minlot==0.01) { return(NormalizeDouble(lot_,2)); } if(minlot==0.10) { return(NormalizeDouble(lot_,1)); } return(NormalizeDouble(lot_,0)); } 1...838839840841842843844845846847848849850851852...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。履歴の中の最後尾の注文の 型値を返す方法を教えてください。
最後に閉じた注文の時刻を見つけて、最大閉時刻で、最後に記憶した時刻より小さい注文を検索する必要があります、これは私がやったことです。
https://www.mql5.com/ru/forum/247136#comment_7555643
私の例ではチケットが検索されたので、チケットの代わりに注文のタイプを返す必要があります。
c++からmql4にエクスポートする関数に テンプレートを適用することは可能でしょうか?
拡張子が "srp "の通常型のファイルを作り、そこにプリミティブな関数を書きました。
そして、拡張子が「def」のファイルを作成し、エクスポートする関数名を指定しました。
LIBRARY "dllmt42" EXPORTS add
そして、Build - Build Solutionで実行しました。
これから配列を扱う関数を開発するので、テンプレートを適用したいのですが、テンプレートがないとどうにもなりません。
Tは強調表示されていますが、エラーヘルプアドバイスがあることを書き込み、それが可能である、再配置しようとしましたか?また、このような関数はmql4側からどのように呼び出されるのでしょうか?
コードベースを見る - MT4では間違いなくそうでした。
トップページのこのスレッドにね。
こんばんは。MT5の勉強と学習の過程で、一般的に困難ではないタスクを実装しようとするが、少し経験と知識のギャップ......一般的に動作しませんが、ヘルプと支援をお願いします。
私はインジケーターとエキスパートアドバイザーを持っていますが、どちらもオープンソースのコードで、同じ作者(Artem Trishkin、尊敬と称賛)によるものです。インジケータに尋ねる時に実際の方向を取得するようにしています。インジケーターは、この方向を上下の矢印で表示します。得られた方向は、Expert Advisorがシグナルとして、またはフィルターとして使用されますが、まだ遠いです。
インジケーターのハンドルは手に入れたのですが、インジケーターからの矢印のデータ値がぐちゃぐちゃで、わかりません。
インジケータは変更していません。 Expert AdvisorにOnInitを追加しています。
OnTickを追加しました。
もちろん、適切なオーバーペン、アレイ、タイムスリールやtdとして定義されたものを記述し、起動したのですが......。
コメントと プリントを使用して確認しました。すぐにではありませんが、エラーはなく、警告が数回出るだけで、よくわかりません。しかし、肝心なのは、パラメータの定義が正しくないということです。以下の条件にもかかわらず、上向き矢印の場合は最大2倍、下向き矢印の場合はいくつかの負の数が出力されます。
以下はそのファイルです。
テストに不要な機能がたくさんある記事からパクるのではなく、簡単なテスト用EAでインジケータからのデータ取得をテストすることから始めるといいでしょうね。
MQL Wizardで簡単なExpert Advisorを作成し、それを使ってiCustom()を使った 練習をするだけです。
こんばんは。MT5の勉強と学習の過程で、一般的に困難ではないタスクを実装しようとするが、少し経験と知識のギャップ......一般的に動作しませんが、ヘルプと支援をお願いします。
私はインジケーターとエキスパートアドバイザーを持っていますが、どちらもオープンソースのコードで、同じ作者(Artem Trishkin、尊敬と賞賛)によるものです。インジケータに尋ねる時に実際の方向を取得するようにしています。インジケーターは、この方向を上下の矢印で表示します。得られた方向は、Expert Advisorがシグナルとして、またはフィルターとして使用されますが、まだ遠いです。
インジケーターのハンドルは手に入れたのですが、インジケーターからの矢印のデータ値がぐちゃぐちゃで、わかりません。
インジケータは変更していません。 Expert AdvisorにOnInitを追加しています。
OnTickを追加しました。
もちろん、適切なオーバーペン、アレイ、タイムスリールやtdとして定義されたものを記述し、起動しました......。
コメントと プリントを使用して確認しました。すぐにではありませんが、エラーはなく、警告が数回出るだけで、よくわかりません。しかし、肝心なのは、パラメータの定義が正しくないということです。以下の条件にもかかわらず、上向き矢印の場合は2倍の最大数、下向き矢印の場合はいくつかの負の数が印刷されます。
Artyomは正しく、私は1つの比較の無駄を指摘します。
CopyBuffer が配列にコピーされた要素数を返す場合、配列のサイズはまさにその通りになります。したがって、強調表示された部分は、最初の条件と単純に重複していることになります。
あと、思いつきですが、インジケーターやEAのコードを見てないので、間違っているかもしれません。period_findの範囲に信号があるはずですが、本当にそうでしょうか?
アルチョムは正しく、一つの比較の不必要さを指摘する
CopyBuffer が配列にコピーされた要素数を返す場合、配列のサイズはまさにその通りになります。これに対応して、選択された部分の条件は、最初の条件を単純に複製したものになります。
思いつきです:インジケーターやExpert Advisorのコードを確認していないので、間違っているかもしれません。period_findの範囲に信号があるはずですが、本当にそうでしょうか?
そうですね。フィルターのようなもので、信号の周波数はこれに依存します。
テストに不要な関数がたくさんある記事からパクるのではなく、簡単なテスト用EAでインジケータからデータを取得するテストから始めるといいでしょう。
iCustom() 関数を使用するとより便利です。
ありがとうございます、良いアドバイスですね、そうしてみます、少なくとも便利になりますね。
今日から始めます。ロットの配給のどこが悪いのか、教えてください。