mql5におけるOOP、テンプレート、マクロ、微妙な使い分け - ページ 15 1...8910111213141516171819202122...28 新しいコメント Vladimir Simakov 2019.08.14 18:04 #141 Vict: 複雑にしすぎました ))。 だから、最初のものを使わせてください、それが一番いい方法でしょう。 TESTは何度か書いても問題ないです。 これも可能ですが、すべてが呼び出される順番が逆になるだけです。 #define LINE(dId) EA.AddDealsSettings(InDealType_##dId,InVolType_##dId,InVolume_##dId,InPrice_##dId,InVolCoeff_##dId,InClosePips_##dId,Mirror) #define BLOCK1 LINE(01) #define BLOCK2 LINE(02); BLOCK1 #define BLOCK3 LINE(03); BLOCK2 #define BLOCK4 LINE(04); BLOCK3 #define BLOCK5 LINE(05); BLOCK4 #define BLOCK6 LINE(06); BLOCK5 #define BLOCK7 LINE(07); BLOCK6 #define BLOCK8 LINE(08); BLOCK7 #define BLOCK9 LINE(09); BLOCK8 #define BLOCK10 LINE(10); BLOCK9 #define SEND(dCount) do {BLOCK##dCount;} while(false) void OnStart() { SEND(10); } Igor Makanu 2019.08.14 18:13 #142 うーん、キーボードを叩く回数を減らして楽にしようと思ったんだけど、今度は例題を全部処理しないといけないか ウラジーミル・シマコフ さん、かっこいいですね。 Vict さん、ありがとうございます。 ZS: 正直、マクロは最初の例だけで、あとは全然わかりません(( Vladimir Simakov 2019.08.14 18:17 #143 Igor Makanu: うーん、キーボードを叩く回数を減らして楽にしようと思ったんだけど、今度は例題を全部処理しないといけないか ウラジーミル・シマコフ さん、かっこいいですね。 Vict さん、ありがとうございます。 ZS: 正直、最初のマクロの例だけ理解できて、あとはさっぱりです(( プリプロセッサのマジックが呼び出される)) Igor Makanu 2019.08.14 18:24 #144 Vladimir Simakov: プリプロセッサのマジックが呼び出されます))) そうなんですよね、練習をしたことがないからなかなか身につかないんですよね(( このコードをマクロにすることはできますか? //--- input parameters input ENUM_DEALTYPE InDealType_01=BUY; //1.------------------------------ Order ------------------------------ input int InPrice_01 = 000; //Start price input double InVolume_01 = 0.01; //Start Volume input ENUM_VOLUMERATIO InVolType_01=MultiplyAlways; //Next operation with volume coefficient input double InVolCoeff_01 = 1.5; //Volume coefficient input ENUM_DISTANCERATIO InDistType_01 = NotMove; //Next price type input double InDistCoeff_01 = 1.23; //Coefficient next open price input int InDistShift_01 = 150; //Shift next open price input int InClosePips_01 = 200; //TakeProfit>0 or StopLoss<0 input ENUM_DEALTYPE InDealType_02=BUY; //2.------------------------------ Order ------------------------------ input int InPrice_02 = 000; //Start price input double InVolume_02 = 0.01; //Start Volume input ENUM_VOLUMERATIO InVolType_02=MultiplyAlways; //Next operation with volume coefficient input double InVolCoeff_02 = 1.5; //Volume coefficient input ENUM_DISTANCERATIO InDistType_02 = NotMove; //Next price type input double InDistCoeff_02 = 1.23; //Coefficient next open price input int InDistShift_02 = 150; //Shift next open price input int InClosePips_02 = 200; //TakeProfit>0 or StopLoss<0 それで10回ですか。 まだ8回残ってるのに・・・。しかし、オプティマイザで実行したときに、もしかしたらパラメータを追加したり削除したりするかもしれないので、まだコードを確定していません(コメントは同じですが、1行目の桁が違います)。 Vladimir Simakov 2019.08.14 18:28 #145 Igor Makanu: そうなんですよね、練習をしたことがないからなかなか身につかないんですよね(( このコードはマクロで包むことができますか? で、10回? で、コメントは同じですが、一桁が違うんです はい、問題ありませんが、コメントだけはご遠慮ください。はい、そしてそれらを /* ... で置き換えてください。*/ この場合、コンパイラは、設定テーブルの外部変数のテキスト記述のコンテキストでそれを受け入れなくなります。確認しました。 Igor Makanu 2019.08.14 18:35 #146 Vladimir Simakov:はい、問題ありませんが、コメントだけはご遠慮ください。はい、そしてそれらを /* ... で置き換えてください。*/ この場合、コンパイラは、設定テーブルの外部変数のテキスト記述のコンテキストで、これを受け入れなくなります。確認しました。 となると、コメントを手作業で修正しなければならないのが問題ですね...。テストにはいいんだけど、とにかく早い、自分のコードを編集していると、編集に時間がかかる、テスターに手が届かない...。 差し支えなければ、コメントなしの例を作ってください。 PS:もしかしたら、このアイデアはくだらないかもしれませんが、朝から頭の中で「こんなのがあったらいいな...」と考えています。今のところオプティマイザに注文のグリッドが、最終目標は異なっている(代わりにいくつかの固定グリッドステップの、私はオプティマイザは、おそらく同じ、係数を実行するように多項式を添付したいが、私はテイラーの行を見てみたい ;) )、しかしグリッドはまず私は、一般的にはテストポリゴン 私は準備))を示し、最適化するかを参照する必要があります。) Andrey Khatimlianskii 2019.08.14 19:31 #147 Igor Makanu: そうなんですよね、練習をしたことがないからなかなか身につかないんですよね(( このコードをマクロにすることはできますか? それで10回ですか。 まだ8回残ってるのに・・・。しかし、オプティマイザで実行するときに、もしかしたらパラメータを追加したり削除したりするかもしれないので、まだコードを書いていないのです(コメントは同じですが、一桁目が違います - 最初の行)。 このコードを生成する(そしてファイルやクリップボードに保存する)小さな関数を書くことができます。 Igor Makanu 2019.08.14 21:42 #148 Andrey Khatimlianskii: このコードを生成する(そしてファイルやクリップボードに保存する)小さな関数を書くことができます。 まあ、詩的な精神はすべて破壊する、散文では難しいことではない、そういうことだ。 #property copyright "IgorM" #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #include <Files\FileTxt.mqh> CFileTxt FOut; #define COUNT 10 const string code0[]= { "input ENUM_DEALTYPE InDealType_","=BUY; //",".------------------------------ Order ------------------------------" }; const string code1[]= { "input int InPrice_"," = 000; //Start price", "input double InVolume_"," = 0.01; //Start Volume", "input ENUM_VOLUMERATIO InVolType_","=MultiplyAlways; //Next operation with volume coefficient", "input double InVolCoeff_"," = 1.5; //Volume coefficient", "input ENUM_DISTANCERATIO InDistType_"," = NotMove; //Next price type", "input double InDistCoeff_"," = 1.23; //Coefficient next open price", "input int InDistShift_"," = 150; //Shift next open price", "input int InClosePips_"," = 200; //TakeProfit>0 or StopLoss<0" }; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { if(FOut.Open(__FILE__+".txt",FILE_WRITE|FILE_COMMON)!=INVALID_HANDLE) { for(int i=0;i<COUNT;i++) { string N=IntegerToString(i,2,'0'); FOut.WriteString(code0[0]+N+code0[1]+IntegerToString(i)+code0[2]+"\n"); for(int j=0;j<8;j++) { FOut.WriteString(code1[j*2]+N+code1[j*2+1]+"\n"); } } printf("Write to file %s",FOut.FileName()); } else printf("Open file error № %i",GetLastError()); } //+------------------------------------------------------------------+ )))) でも、とにかくアドバイスありがとうございました Alexey Viktorov 2019.08.15 04:44 #149 Vladimir Simakov: はい、問題ありませんが、コメントだけはご遠慮ください。はい、そしてそれらを /* ... で置き換えてください。*/ この場合、コンパイラは、設定テーブルの外部変数のテキスト記述のコンテキストでそれを受け入れなくなります。確認しました。 何か悪いことをしたのでは?それともマクロの動作が違うのでしょうか? input double d1=1.02,/*Первая переменная double*/ d2=3;/*Вторая переменная double*/ input double d3=3.07;/*Третья переменная double*/ input int i1=5,/*Первая переменная int*/ i2=7;/*Вторая переменная int*/ Vladimir Simakov 2019.08.15 05:20 #150 Alexey Viktorov:何か悪いことをしたのでしょうか?それともマクロの動作が違うのでしょうか? そうですね、違いますね。これは、プリプロセッサがパーサより 先に起動して、バカスカ文章を集め、マクロ内のコメントがプリプロセッサの段階で破棄されることと関係がある。同時に、マクロで//を放置しておくと、自分のせいで猛烈なバグが発生する可能性もあります。 1...8910111213141516171819202122...28 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
複雑にしすぎました ))。
だから、最初のものを使わせてください、それが一番いい方法でしょう。
TESTは何度か書いても問題ないです。これも可能ですが、すべてが呼び出される順番が逆になるだけです。
うーん、キーボードを叩く回数を減らして楽にしようと思ったんだけど、今度は例題を全部処理しないといけないか
ウラジーミル・シマコフ さん、かっこいいですね。
Vict さん、ありがとうございます。
ZS: 正直、マクロは最初の例だけで、あとは全然わかりません((
うーん、キーボードを叩く回数を減らして楽にしようと思ったんだけど、今度は例題を全部処理しないといけないか
ウラジーミル・シマコフ さん、かっこいいですね。
Vict さん、ありがとうございます。
ZS: 正直、最初のマクロの例だけ理解できて、あとはさっぱりです((
プリプロセッサのマジックが呼び出される))
プリプロセッサのマジックが呼び出されます)))
そうなんですよね、練習をしたことがないからなかなか身につかないんですよね((
このコードをマクロにすることはできますか?
それで10回ですか。
まだ8回残ってるのに・・・。しかし、オプティマイザで実行したときに、もしかしたらパラメータを追加したり削除したりするかもしれないので、まだコードを確定していません(コメントは同じですが、1行目の桁が違います)。
そうなんですよね、練習をしたことがないからなかなか身につかないんですよね((
このコードはマクロで包むことができますか?
で、10回? で、コメントは同じですが、一桁が違うんです
はい、問題ありませんが、コメントだけはご遠慮ください。はい、そしてそれらを /* ... で置き換えてください。*/ この場合、コンパイラは、設定テーブルの外部変数のテキスト記述のコンテキストでそれを受け入れなくなります。確認しました。
はい、問題ありませんが、コメントだけはご遠慮ください。はい、そしてそれらを /* ... で置き換えてください。*/ この場合、コンパイラは、設定テーブルの外部変数のテキスト記述のコンテキストで、これを受け入れなくなります。確認しました。
となると、コメントを手作業で修正しなければならないのが問題ですね...。テストにはいいんだけど、とにかく早い、自分のコードを編集していると、編集に時間がかかる、テスターに手が届かない...。
差し支えなければ、コメントなしの例を作ってください。
PS:もしかしたら、このアイデアはくだらないかもしれませんが、朝から頭の中で「こんなのがあったらいいな...」と考えています。今のところオプティマイザに注文のグリッドが、最終目標は異なっている(代わりにいくつかの固定グリッドステップの、私はオプティマイザは、おそらく同じ、係数を実行するように多項式を添付したいが、私はテイラーの行を見てみたい ;) )、しかしグリッドはまず私は、一般的にはテストポリゴン 私は準備))を示し、最適化するかを参照する必要があります。)
そうなんですよね、練習をしたことがないからなかなか身につかないんですよね((
このコードをマクロにすることはできますか?
それで10回ですか。
まだ8回残ってるのに・・・。しかし、オプティマイザで実行するときに、もしかしたらパラメータを追加したり削除したりするかもしれないので、まだコードを書いていないのです(コメントは同じですが、一桁目が違います - 最初の行)。
このコードを生成する(そしてファイルやクリップボードに保存する)小さな関数を書くことができます。
このコードを生成する(そしてファイルやクリップボードに保存する)小さな関数を書くことができます。
まあ、詩的な精神はすべて破壊する、散文では難しいことではない、そういうことだ。
))))
でも、とにかくアドバイスありがとうございました
はい、問題ありませんが、コメントだけはご遠慮ください。はい、そしてそれらを /* ... で置き換えてください。*/ この場合、コンパイラは、設定テーブルの外部変数のテキスト記述のコンテキストでそれを受け入れなくなります。確認しました。
何か悪いことをしたのでは?それともマクロの動作が違うのでしょうか?
何か悪いことをしたのでしょうか?それともマクロの動作が違うのでしょうか?