初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 456 1...449450451452453454455456457458459460461462463...1503 新しいコメント Artyom Trishkin 2015.10.08 02:44 #4551 E_Ghazaryan: うん、そうだね =D )))すでに添付しています)))これらのパラメータはすべて、iCustom()内のインジケータ名の後にカンマで区切って記載し、その後にさらに2つのパラメータ、バッファ番号とデータを取得するためのバー番号を記載します。すなわちiCustom(Symbol(),Period(), "_MTF_ADX3", 0, 500, 6, 6, 8, 14, 6, 6, 2, true, false, buffer_number, bar_number) を参照。リストアップされた値はすべてEAの外部変数で設定でき、これらの変数の名前はハードコードされた値の代わりにiCustom()に書き込むことができます。 pusheax 2015.10.08 14:28 #4552 その理由を教えてください。double d = 0.07とした。d =NormalizeDouble(d,2);いずれの場合も d== 0.070000000000001小数点以下2桁を残すにはどうしたらよいですか? Vladimir Karputov 2015.10.08 14:36 #4553 pusheax:その理由を教えてください。double d = 0.07とした。d = NormalizeDouble(d,2);いずれの場合も d== 0.070000000000001小数点以下2桁を残すには?Print()でJournalに出力する場合、正規化された数値は思ったより小数点 以下の桁数が多くなる場合があることに注意してください。例えば、こんな感じです。 double a=76.671; // нормализованное число с 3 знаками после запятой Print("Print(76.671)=",a); // выведем его как есть Print("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностьюがターミナルに出力されます。 DoubleToString(a,8)=76.67100000 Print(76.671)=76.67100000000001つまり、印刷の場合、余分な値を出力しても問題ないのです。 Документация по MQL5: Преобразование данных / NormalizeDouble www.mql5.com Преобразование данных / NormalizeDouble - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 pusheax 2015.10.08 14:46 #4554 Karputov Vladimir:Print()で正規化した数値をJournalに出力する場合、小数点 以下の桁数が予想以上に多くなる可能性があることに注意してください。例えば、こんな感じです。がターミナルに出力されます。そのため、印刷の場合、余分な値を出力することは問題ない。 ありがとうございます。ただ、0.07ロットでポジションを持とうとするとエラーが出るので(問題かと)、何か別の原因がありそうなので、もう少し調べてみます。 Vladimir Karputov 2015.10.08 14:53 #4555 pusheax: ありがとうございます、ただ、0.07ロットでポジションを持とうとするとエラーになります(それが問題かと)、何か別の原因があるのでしょう、もっと調べてみます。 まず、エラー番号の説明を見ることです。これにより、検索経路を短縮することができます。 pr0gre5 2015.10.09 15:16 #4556 こんばんは動的配列を 宣言しましたdouble all_order[][10]。OnInitで再定義しました。ArrayResize(all_order, 20)を使用します。関数にデータを入力するvoid OR_spisok(double a0, double a1, double a2, double a3, double a4, double a5){int a10=int(a0);all_order[a10][0]=a0;all_order[a10][1]=a1;all_order[a10][2]=a2;all_order[a10][3]=a3;all_order[a10][4]=a4;all_order[a10][5]=a5;}3行で問題なく動作、4行で固まる2015.10.09 20:13:47.908 3102 EURUSD,H1: '3102.mq4' の配列が範囲外 (393,10)になっています。393,10である。all_order[a10][0]=a0;どうしたものか行削除#property strict スクリプトは動作していますが、この行がなくても続行できますか? Questions from Beginners MQL5 [アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. If 2 cars are 削除済み 2015.10.09 15:52 #4557 pr0gre5:こんばんは動的な配列を 宣言したプロパティの厳密な 行を削除 スクリプトは動作していますが、この行がなくても続行できますか? はい E_Ghazaryan 2015.10.09 16:17 #4558 Artyom Trishkin:これらのパラメータはすべて、iCustom()内のインジケータ名の後にカンマで区切って記載し、その後にさらに2つのパラメータ、バッファ番号とデータを取得するためのバー番号を記載します。すなわちiCustom(Symbol(), Period(), "_MTF_ADX3", 0, 500, 6, 6, 8, 14, 6, 6, 2, true, false, buffer_number, bar_number) を参照。リストアップした値はすべてEAの外部変数で設定でき、ハードコードされた値ではなく、その変数名をiCustom()に書き込むことができます。 ご返信ありがとうございました。しかし、実は最初はそうしていたのですが、間違った値が返ってきたため、Expert Advisorがインジケータの標準パラメータを使用するように、iCustomからパラメータを削除することにしました。しかし、いずれの場合もEAは誤った値を取得します。例えば、AlertではBlueラインに30.32362が表示されますが、指標チャートを見ると同じ場所に22.3320が表示されています。また、他のラインも同様です。 Artyom Trishkin 2015.10.09 17:36 #4559 E_Ghazaryan: 返信ありがとうございました。ただ、最初はそうしていたのですが、間違った値が出たときに、iCustomからパラメータを削除して、EAが標準のインジケータのパラメータを使うようにしたことです。しかし、どちらの場合もExpert Advisorは間違った値を受け取ります。例えば、AlertではBlueラインに30.32362が表示されますが、指標チャートを見ると同じ場所に22.3320が表示されています。そして、他のラインも同様です。 インジケータからデータを取得するコードを示してください。 E_Ghazaryan 2015.10.09 19:44 #4560 Artyom Trishkin: インジケータからデータを取得するコードを示してください。コードが大きかったんです。しかし、Expert Advisorがルール通りに動かないという問題の原因を探るため、この部分を切り離してテストを開始しました。double Ind_Blue=iCustom(NULL, 0, "_MTF_ADX3",1,0);double Ind_Red=iCustom(NULL, 0, "_MTF_ADX3",2,0);Alert(" Ind_Blue= " , Ind_Blue , " Ind_Red= " , Ind_Red); Expert Advisorのファイルも添付しておきます。あなたの時間を無駄にしたくないのですが、問題が見つかりません。また、同じような問題を持つインジケータ(Adx mtf)があります。そのためのmq4ファイルを持っています。しかし、コードに問題はなさそうです。 ファイル: _MTF_ADX3.ex4 5 kb Adx_mtf.ex4 21 kb Adx_mtf.mq4 6 kb 1...449450451452453454455456457458459460461462463...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
うん、そうだね =D )))すでに添付しています)))
これらのパラメータはすべて、iCustom()内のインジケータ名の後にカンマで区切って記載し、その後にさらに2つのパラメータ、バッファ番号とデータを取得するためのバー番号を記載します。すなわち
iCustom(Symbol(),Period(), "_MTF_ADX3", 0, 500, 6, 6, 8, 14, 6, 6, 2, true, false, buffer_number, bar_number) を参照。
リストアップされた値はすべてEAの外部変数で設定でき、これらの変数の名前はハードコードされた値の代わりにiCustom()に書き込むことができます。
その理由を教えてください。
double d = 0.07とした。
d =NormalizeDouble(d,2);
いずれの場合も d== 0.070000000000001
小数点以下2桁を残すにはどうしたらよいですか?
その理由を教えてください。
double d = 0.07とした。
d = NormalizeDouble(d,2);
いずれの場合も d== 0.070000000000001
小数点以下2桁を残すには?
Print()でJournalに出力する場合、正規化された数値は思ったより小数点 以下の桁数が多くなる場合があることに注意してください。例えば、こんな感じです。
がターミナルに出力されます。
つまり、印刷の場合、余分な値を出力しても問題ないのです。
Print()で正規化した数値をJournalに出力する場合、小数点 以下の桁数が予想以上に多くなる可能性があることに注意してください。例えば、こんな感じです。
がターミナルに出力されます。
そのため、印刷の場合、余分な値を出力することは問題ない。
ありがとうございます、ただ、0.07ロットでポジションを持とうとするとエラーになります(それが問題かと)、何か別の原因があるのでしょう、もっと調べてみます。
こんばんは
動的配列を 宣言しました
double all_order[][10]。
OnInitで再定義しました。
ArrayResize(all_order, 20)を使用します。
関数にデータを入力する
void OR_spisok(double a0, double a1, double a2, double a3, double a4, double a5)
{
int a10=int(a0);
all_order[a10][0]=a0;
all_order[a10][1]=a1;
all_order[a10][2]=a2;
all_order[a10][3]=a3;
all_order[a10][4]=a4;
all_order[a10][5]=a5;
}
3行で問題なく動作、4行で固まる
2015.10.09 20:13:47.908 3102 EURUSD,H1: '3102.mq4' の配列が範囲外 (393,10)になっています。
393,10である。
all_order[a10][0]=a0;
どうしたものか
行削除#property strict
スクリプトは動作していますが、この行がなくても続行できますか?
こんばんは
動的な配列を 宣言した
プロパティの厳密な 行を削除
スクリプトは動作していますが、この行がなくても続行できますか?
これらのパラメータはすべて、iCustom()内のインジケータ名の後にカンマで区切って記載し、その後にさらに2つのパラメータ、バッファ番号とデータを取得するためのバー番号を記載します。すなわち
iCustom(Symbol(), Period(), "_MTF_ADX3", 0, 500, 6, 6, 8, 14, 6, 6, 2, true, false, buffer_number, bar_number) を参照。
リストアップした値はすべてEAの外部変数で設定でき、ハードコードされた値ではなく、その変数名をiCustom()に書き込むことができます。
返信ありがとうございました。ただ、最初はそうしていたのですが、間違った値が出たときに、iCustomからパラメータを削除して、EAが標準のインジケータのパラメータを使うようにしたことです。しかし、どちらの場合もExpert Advisorは間違った値を受け取ります。例えば、AlertではBlueラインに30.32362が表示されますが、指標チャートを見ると同じ場所に22.3320が表示されています。そして、他のラインも同様です。
インジケータからデータを取得するコードを示してください。
コードが大きかったんです。しかし、Expert Advisorがルール通りに動かないという問題の原因を探るため、この部分を切り離してテストを開始しました。
double Ind_Blue=iCustom(NULL, 0, "_MTF_ADX3",1,0);
double Ind_Red=iCustom(NULL, 0, "_MTF_ADX3",2,0);
Alert(" Ind_Blue= " , Ind_Blue , " Ind_Red= " , Ind_Red);
Expert Advisorのファイルも添付しておきます。あなたの時間を無駄にしたくないのですが、問題が見つかりません。
また、同じような問題を持つインジケータ(Adx mtf)があります。そのためのmq4ファイルを持っています。しかし、コードに問題はなさそうです。