MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 627 1...620621622623624625626627628629630631632633634...1953 新しいコメント Igor Makanu 2018.09.19 17:48 #6261 Sergey Likho:取引の担保を計算する方法を教えてください。 2つのアプローチを試してみた (0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE) そして、この1枚 FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1); double val=AccountFreeMargin()-FreeMarginCheck; 最初のものは、私の預金通貨が 米ドルである場合、EURJPYで奇妙な結果をもたらします。配合に何か加える必要があるのでしょうか? 2番目も一度だけ動作し、正しい値を出すこともあれば、無意味な値を出すこともある(預金に依存する)。正確には、変数valは注文後の自由資金の値を示し、変数FreeMarginCheckは保証金の値そのものを 示します。 Sergey Likho 2018.09.19 17:55 #6262 Igor Makanu:2番目の選択肢が正しい計算方法というか、注文後にval変数にフリー資金の値を取得し、FreeMarginCheckという 変数に証拠金の値そのものを取得します本当ですか? AccountFreeMarginCheck FALSEY関数は、指定された注文が現在の価格で建てられた後に残る、現在の口座にある自由資金の量を返します。 そこには微妙なニュアンスもあります。 反対売買が行われている場合、つまり口座に完全または不完全なロックがかかっている場合、この関数は不正確な値を返すことがあります。 Igor Makanu 2018.09.19 18:06 #6263 Sergey Likho:本当ですか?そうですね、まさにその通りです。 戻り値:現在の口座で指定された価格で注文を開始 した後の、残りの 自由資金 量。 オープントレードについて、あなたがチェックする必要がある、私は覚えていないが、ほとんどの場合、端末の書き込みは、計算されたデータと一致する必要があります:すべてのシンボルの取引(ベイ/セル)の各方向のロットの合計数は、各シンボルのために呼び出します。 AccountFreeMarginCheck()で各方向にロットを渡し、その結果を集計する。 今日も相場は動いています、こんな感じで簡単に確認できます。 #property strict //+------------------------------------------------------------------+ void OnStart() { int i,ot,k=OrdersTotal(); double lot_buy=0.0,lot_sell=0.0; string sy=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { ot=OrderType(); if(OrderSymbol()==sy) { if(ot==OP_BUY) lot_buy+=OrderLots(); if(ot==OP_SELL) lot_sell+=OrderLots(); } } } double MarginBUY = AccountFreeMargin()-AccountFreeMarginCheck(sy,OP_BUY,lot_buy); double MarginSELL = AccountFreeMargin()-AccountFreeMarginCheck(sy,OP_SELL,lot_sell); double MarginALL = MarginBUY+MarginSELL; Print("Залог BUY = ",MarginBUY); Print("Залог SELL = ",MarginSELL); Print("Залог ALL = ",MarginALL); } Anatolij Anufriev 2018.09.19 20:18 #6264 はじめまして、この機能のどこが問題なのか教えてください。この関数は、時間による取引の一時停止を行うもので、パラメータには一時停止の開始と終了が含まれます。TimeCurrentが 規定されているにもかかわらず、この関数はブローカーのサーバーからではなく、コンピュータから時刻を読み取ります。一般に、取引は一時停止中に終了し、機能は動作しません。 input bool p = true; // Trading pause on/off input string TimeStart = "23:59"; // Start pause input string TimeEnd = "06:15"; // End of pause int start() { //+----------------------------------------------------------------------------+ datetime StartPause,EndPause; // --- StartPause = StrToTime(TimeStart); EndPause = StrToTime(TimeEnd); // --- if((p && StartPause > EndPause && (TimeCurrent() > StartPause || TimeCurrent() < EndPause))) { Print(" Pause the EA "); return(0); } //+----------------------------------------------------------------------------+ Igor Makanu 2018.09.19 20:31 #6265 Anatolij Anufriev:はじめまして、この機能のどこが問題なのか教えてください。この関数は、時間単位で取引を一時停止します。パラメータは、一時停止開始と一時停止終了です。 TimeCurrentが規定されているにもかかわらず、この関数はブローカーのサーバーからではなく、コンピュータから時刻を読み取ります。一般に、一時停止中に取引が終了した場合は、その機能が働いていないことを意味します。TimeStartとStrToTime(TimeStart)をアンプリントする。 その後、unprintTimeCurrent() あなたのTimeStartは、完全なdatetime形式ではありません。つまり、EAを実行すると、時間は常に現在の日、月、年であり、その後変更されますか? そして、グローバルに...取引時間と分を決定するには、 時間と分の サーバーの時間と比較する必要があり、あなただけのサーバーの時間は、指定されたものよりも長いという事実を比較することができます SZZ:混乱を 避けるために、datetimeをint型とみなして、2つのdatetimeを比較すると、2つのint型が 比較されるようにするとよいでしょう。PSPSです。 if((p && StartPause > EndPause && (TimeCurrent() > StartPause || TimeCurrent() < EndPause)))あなたのコードはおそらく動作するでしょうから、そのように試してみてください。 if((p && StartPause > EndPause && (TimeCurrent() > StartPause && TimeCurrent() < EndPause))) 私は普段、この方法で時間を数えています。 int h = TimeHour(TimeCurrent());int m = TimeMinute(TimeCurrent()); で、EAの設定 と比較します。 MQL5で日付と時刻を扱う方法を学ぶ MQL5でのもみ合いレンジブレイクアウト戦略に基づくエキスパートアドバイザー(EA)の開発 クロスプラットフォームEA: タイムフィルタ Anatolij Anufriev 2018.09.19 22:10 #6266 Igor Makanu:ありがとうございます、何とかしてみます、私はまだ初心者です)、||の代わりに&&オプションで、オンラインではまだ試していません、ところでこのコードはテスターでは動作します、ターミナルから時間を読み、一時停止中の注文のクローズはありません、しかしオンラインは違います。 danil77783 2018.09.20 03:33 #6267 こんにちは!ストラテジーテスターで ターミナルが起動しません。例えば(2017,04,01~2018,05,29)のように日付を設定し、スタートを押すと、すぐにストップがかかってしまうのです。ログには次のように書かれています。 TestGenerator: 2017.04.01 から 2018.05.29 までの履歴データ 'EURUSD30' がない。 などと、どのセグメントにもある。私のコンピュータは動いている、RAMが足りないかもしれないと思った。自宅のパソコンでも同じで、再起動してもダメですが、しばらくは動きます。Expert Advisorをマーケットからダウンロードし、試用しています。どなたか理由をご存知の方がいらっしゃいましたら、アドバイスをお願いします。 Igor Makanu 2018.09.20 03:58 #6268 danil77783:こんにちは!ストラテジーテスターで ターミナルが起動しません。例えば(2017,04,01~2018,05,29)のように日付を設定し、スタートを押すと、すぐにストップがかかってしまうのです。ログには次のように書かれています。TestGenerator: 2017.04.01 から 2018.05.29 までの履歴データ 'EURUSD30' がない。 などと、どのセグメントにもある。私のコンピュータは動いている、RAMが足りないかもしれないと思った。自宅のパソコンでも同じで、再起動してもダメですが、しばらくは動きます。Expert Advisorをマーケットからダウンロードし、試用しています。もし、原因に心当たりがあれば、ヒントを教えてください。テスターで履歴データがないと言われ、F2キーを押して履歴をダウンロードし、端末を再起動するといいと思います Roman Sharanov 2018.09.20 04:04 #6269 danil77783:こんにちは!ストラテジーテスターで ターミナルが起動しません。例えば(2017,04,01~2018,05,29)のように日付を設定し、スタートを押すと、すぐにストップがかかってしまうのです。ログには次のように書かれています。TestGenerator: 2017.04.01 から 2018.05.29 までの履歴データ 'EURUSD30' がない。 などと、どのセグメントにもある。私のコンピュータは動いている、RAMが足りないかもしれないと思った。自宅のパソコンでも同じで、再起動してもダメですが、しばらくは動きます。マーケットからExpert Advisorをダウンロードし、試用しています。もし理由がわかれば、教えてください。履歴データがない のは、何か意味があるのでしょうか? danil77783 2018.09.20 04:40 #6270 Igor Makanu:テスターが履歴データがないと言っているのだと思います。F2キーを押して履歴をダウンロードし、端末を再読み込みしてくださいありがとうございました。試してみようと思います。端末をアップデート すると何か影響があるのでしょうか?アップデートされているかどうかは、自分で教えてくれるけれど......。 1...620621622623624625626627628629630631632633634...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
取引の担保を計算する方法を教えてください。
2つのアプローチを試してみた
(0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE)
そして、この1枚
FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1);
double val=AccountFreeMargin()-FreeMarginCheck;
最初のものは、私の預金通貨が 米ドルである場合、EURJPYで奇妙な結果をもたらします。配合に何か加える必要があるのでしょうか?
2番目も一度だけ動作し、正しい値を出すこともあれば、無意味な値を出すこともある(預金に依存する)。
正確には、変数valは注文後の自由資金の値を示し、変数FreeMarginCheckは保証金の値そのものを 示します。
2番目の選択肢が正しい計算方法というか、注文後にval変数にフリー資金の値を取得し、FreeMarginCheckという 変数に証拠金の値そのものを取得します
本当ですか?
AccountFreeMarginCheck
FALSEY関数は、指定された注文が現在の価格で建てられた後に残る、現在の口座にある自由資金の量を返します。
そこには微妙なニュアンスもあります。
反対売買が行われている場合、つまり口座に完全または不完全なロックがかかっている場合、この関数は不正確な値を返すことがあります。
本当ですか?
そうですね、まさにその通りです。
戻り値:現在の口座で指定された価格で注文を開始 した後の、残りの 自由資金 量。
オープントレードについて、あなたがチェックする必要がある、私は覚えていないが、ほとんどの場合、端末の書き込みは、計算されたデータと一致する必要があります:すべてのシンボルの取引(ベイ/セル)の各方向のロットの合計数は、各シンボルのために呼び出します。
AccountFreeMarginCheck()で各方向にロットを渡し、その結果を集計する。
今日も相場は動いています、こんな感じで簡単に確認できます。
はじめまして、この機能のどこが問題なのか教えてください。この関数は、時間による取引の一時停止を行うもので、パラメータには一時停止の開始と終了が含まれます。
TimeCurrentが 規定されているにもかかわらず、この関数はブローカーのサーバーからではなく、コンピュータから時刻を読み取ります。一般に、取引は一時停止中に終了し、機能は動作しません。
はじめまして、この機能のどこが問題なのか教えてください。この関数は、時間単位で取引を一時停止します。パラメータは、一時停止開始と一時停止終了です。
TimeCurrentが規定されているにもかかわらず、この関数はブローカーのサーバーからではなく、コンピュータから時刻を読み取ります。一般に、一時停止中に取引が終了した場合は、その機能が働いていないことを意味します。
TimeStartとStrToTime(TimeStart)をアンプリントする。
その後、unprintTimeCurrent()
あなたのTimeStartは、完全なdatetime形式ではありません。つまり、EAを実行すると、時間は常に現在の日、月、年であり、その後変更されますか?
そして、グローバルに...取引時間と分を決定するには、 時間と分の サーバーの時間と比較する必要があり、あなただけのサーバーの時間は、指定されたものよりも長いという事実を比較することができます
SZZ:混乱を 避けるために、datetimeをint型とみなして、2つのdatetimeを比較すると、2つのint型が 比較されるようにするとよいでしょう。
PSPSです。
あなたのコードはおそらく動作するでしょうから、そのように試してみてください。
私は普段、この方法で時間を数えています。
int h = TimeHour(TimeCurrent());
int m = TimeMinute(TimeCurrent());
で、EAの設定 と比較します。
ありがとうございます、何とかしてみます、私はまだ初心者です)、||の代わりに&&オプションで、オンラインではまだ試していません、ところでこのコードはテスターでは動作します、ターミナルから時間を読み、一時停止中の注文のクローズはありません、しかしオンラインは違います。
こんにちは!ストラテジーテスターで ターミナルが起動しません。例えば(2017,04,01~2018,05,29)のように日付を設定し、スタートを押すと、すぐにストップがかかってしまうのです。ログには次のように書かれています。
TestGenerator: 2017.04.01 から 2018.05.29 までの履歴データ 'EURUSD30' がない。 などと、どのセグメントにもある。私のコンピュータは動いている、RAMが足りないかもしれないと思った。自宅のパソコンでも同じで、再起動してもダメですが、しばらくは動きます。Expert Advisorをマーケットからダウンロードし、試用しています。どなたか理由をご存知の方がいらっしゃいましたら、アドバイスをお願いします。
こんにちは!ストラテジーテスターで ターミナルが起動しません。例えば(2017,04,01~2018,05,29)のように日付を設定し、スタートを押すと、すぐにストップがかかってしまうのです。ログには次のように書かれています。
TestGenerator: 2017.04.01 から 2018.05.29 までの履歴データ 'EURUSD30' がない。 などと、どのセグメントにもある。私のコンピュータは動いている、RAMが足りないかもしれないと思った。自宅のパソコンでも同じで、再起動してもダメですが、しばらくは動きます。Expert Advisorをマーケットからダウンロードし、試用しています。もし、原因に心当たりがあれば、ヒントを教えてください。
テスターで履歴データがないと言われ、F2キーを押して履歴をダウンロードし、端末を再起動するといいと思います
こんにちは!ストラテジーテスターで ターミナルが起動しません。例えば(2017,04,01~2018,05,29)のように日付を設定し、スタートを押すと、すぐにストップがかかってしまうのです。ログには次のように書かれています。
TestGenerator: 2017.04.01 から 2018.05.29 までの履歴データ 'EURUSD30' がない。 などと、どのセグメントにもある。私のコンピュータは動いている、RAMが足りないかもしれないと思った。自宅のパソコンでも同じで、再起動してもダメですが、しばらくは動きます。マーケットからExpert Advisorをダウンロードし、試用しています。もし理由がわかれば、教えてください。
履歴データがない のは、何か意味があるのでしょうか?
テスターが履歴データがないと言っているのだと思います。F2キーを押して履歴をダウンロードし、端末を再読み込みしてください
ありがとうございました。試してみようと思います。端末をアップデート すると何か影響があるのでしょうか?アップデートされているかどうかは、自分で教えてくれるけれど......。