エラー、バグ、質問 - ページ 4 1234567891011...3185 新しいコメント Vladimir 2010.06.08 19:02 #31 Interesting: MarketInfo(Symbol(,MODE_MARGININIT)) = SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL)である。 では、MODE_MARGINREQUIREDには何が対応するのでしょうか?またはそれ以外の場合、購入するために1ロットを開くために必要なフリーマネーの 量を知るにはどうすればよいですか? mql5クリエイターのMoving Average.mq5 Expert Advisorでは、ロットは次のように計算されます。input double MaximumRisk = 0.02; // Maximum Risk in percentageinput double DecreaseFactor = 3; // Descrease factorinput int MovingPeriod = 12; // Moving Average periodinput int MovingShift = 6; // Moving Average shift//---int ExtHandle=0;//+------------------------------------------------------------------+//| Calculate optimal lot size |//+------------------------------------------------------------------+double TradeSizeOptimized(void) {//--- select lot size double lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_FREEMARGIN)*MaximumRisk/1000.0,2); ロット計算の際、MaximumRiskが0.02%と小さく、1000で割っているのはなぜですか?この1000は何を表しているのでしょうか?1000=1ロットの購入に必要な資金×100%(0.02%を0.0002分の1に変換するため)とか?つまり、1ロットの購入に使える資金は10ドル(10×100%=1000)です。私が思うに、それは正しい方向なのでしょうか? そしてもう一つ質問です。未決済注文の最大件数に制限はありますか? 削除済み 2010.06.08 19:33 #32 gpwr: では、MODE_MARGINREQUIREDには何が対応するのでしょうか?または、そうでない場合は、1ロットを購入するために必要な利用可能資金の量を知るにはどうすればよいですか? そしてもう一つ質問です。未決済注文の最大件数に制限はありますか?私は自分にこう問いかけました。以下は、開発者の回答です。ラシード・ウマロフ 参照 シンボルトレード契約サイズ 売買契約書サイズ 二重и シンボル_カレンシー_マージン マージンを計算する通貨 列 私の理解では、自分で計算する必要があります 削除済み 2010.06.08 19:44 #33 gpwr:mql5クリエイターのMoving Average.mq5 Expert Advisorでは、ロットは次のように計算されます。 ロット計算の際、MaximumRiskが0.02%と小さく、1000で割っているのはなぜですか?この1000は何を表しているのでしょうか?1000=1ロットの購入に必要な資金×100%(0.02%を0.0002分の1に変換するため)とか?つまり、1ロットの購入に使える資金は10ドル(10×100%=1000)です。私が思うに、それは正しい方向なのでしょうか? そしてもう一つ質問です。未決済注文の最大件数に制限はありますか?AccountInfoDouble(ACCOUNT_FREEMARGIN)*MaximumRisk この行は、私の理解が正しければ、リスクを自由資金量の 2%として計算しています。なぜ、この金額を1000で割るのだろう?しかし、私が正しく理解しているならば、2万ドルの預金(自由資金)で、Expert Advisorはこの金額の2%(400ドル)以下の開設を推奨していることになります。これを1,000で割ると、論理的には0.4ロットとなる...。 削除済み 2010.06.08 19:48 #34 gpwr:未決済注文の最大件数に制限はありますか? 私も同じことを思っていました。開発者がまだ考えている提案がある(ちなみに彼らには-アプリケーション15802)。 Vladimir 2010.06.08 20:55 #35 Interesting:この行は、私の理解が正しければ、利用可能な資金量の2%としてリスクを計算します。なぜこの金額を1,000で割るのかは、開発者の自由である。しかし、私は正しく理解している場合は、$ 20,000の預金(フリー資金)で、エキスパート-アドバイザは、この金額($ 400)の2%以上を開けないことをお勧めします。これを1,000で割ると、論理的には0.4ロットとなる...。 今、私はそれを得た。Moving Average.mq5に誤りがあります。の代わりにinput double MaximumRisk = 0.02; // Maximum Risk in percentage であるべきです。input double MaximumRisk = 0.02; // Maximum Risk as a fraction of a free margin そうすると、10万ドル(ロットサイズ)/100(レバレッジ)=1000となり、ロットの計算における1000での割り算が明確になります。しかし、mql5の開発者は、このようなExpert Advisorの例を示してはならない。変更する必要がありますdouble lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_FREEMARGIN)*MaximumRisk/1000.0,2); へのdouble LotSize =SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);int Leverage =AccountInfoInteger(ACCOUNT_LEVERAGE);double FreeMargin =AccountInfoDouble(ACCOUNT_FREEMARGIN); double LotRqdMgn =LotSize/Leverage;double lot =NormalizeDouble(FreeMargin*MaximumRisk/LotRqdMgn,2); またはもっと良いdouble Step =SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);double LotSize =SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);int Leverage =AccountInfoInteger(ACCOUNT_LEVERAGE);double FreeMargin =AccountInfoDouble(ACCOUNT_FREEMARGIN); double LotRqdMgn =LotSize/Leverage;double lot =NormalizeDouble(MathFloor(FreeMargin*MaximumRisk/LotRqdMgn/Step)*Step,2); MODE_MARGINREQUIREDが無くなってしまったのは残念ですが。もしかしたら、開発者がこのパラメータを復活させて、計算回数を減らすかもしれませんね。 削除済み 2010.06.08 21:05 #36 Interesting: ストリングス ショートネームは、これまでインジケーターサブウィンドウでの表示のみに使用されてきました。 そこで表示されないのは、エラーなのか、私が何か理解していないのか...。 エラーを発見して修正し、16051は閉じることができます。 Vladimir 2010.06.09 07:43 #37 バグレポートの置き場所が悪いのでは?そうでない場合は、訂正をお願いします。 私のEAをテストする際、テスターがマージンを正しく判断できるかどうかを確認するために、わざとそのような状況を作りました。そこで、100ドルのデポジット。EURUSDを取引しています。最低敷地面積は0.1です。Expert Advisor には、以下のロット計算のコードがあります。double volMin =SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);double LotSize =SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);long Leverage =AccountInfoInteger(ACCOUNT_LEVERAGE);double FreeMargin =AccountInfoDouble(ACCOUNT_FREEMARGIN); double LotRqdMgn =LotSize/Leverage;double vol=NormalizeDouble(MathFloor(FreeMargin*MaxRisk/LotRqdMgn/Step)*Step,2);if(vol<volMin) vol=volMin;if(vol*LotRqdMgn>FreeMargin) vol=0.0;Print(LotRqdMgn," ",FreeMargin);return(vol); テスターはこれらのエラーを発生させます。 2010.06.08 22:28:57 Core 1 no enough money [instant buy 0.10 EURUSD at 1.19242]. 2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.24, NewFreeMargin: -19.24. 2010.06.08 22:28:57 コア1 1000 100 2010.06.08 22:28:57 Core 1 資金不足 [1.19180で0.10EURUSDを即買い]。 2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.18, NewFreeMargin: -19.18. 2010.06.08 22:28:57 コア1 1000 100 2010.06.08 22:28:57 Core 1 no enough money [instant buy 0.10 EURUSD at 1.19362]. 2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.36, NewFreeMargin: -19.36. 2010.06.08 22:28:57 コア1 1000 100 これらのメッセージから判断すると、1ロットの購入に必要な自由証拠金LotRqdMgnは1000となり、正しいようです。FreeMargin=100。0.1ロットに1000を掛けると100になります。1ロット目をオープンするための資金が十分にあるということです。しかし、テスターからは「資金が足りない」と報告されました。エラーはどこにあるのか? Errors, bugs, questions Avoid not enough money [ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. Renat Fatkhullin 2010.06.09 09:57 #38 gpwr: これらのメッセージから、1ロットの購入に必要な自由証拠金LotRqdMgnは1000であり、これは正しいと思われます。FreeMargin=100。0.1ロットに1000を掛けると100になります。1ロット目をオープンするための資金が十分にあるということです。しかし、テスターからは「資金が足りない」と報告される。どこにエラーがあるのか?残高=100USD、必要証拠 金=100EUR(119USD)の計算を忘れていたのが誤りです。だから、取引ができないのです。すべてが正しいのです。 Vladimir 2010.06.09 16:35 #39 Renat: 残高=100USD、必要証拠金=100EUR(119USD)の計算を忘れていたのが誤りです。 だから、取引ができないのです。すべてが正しいのです。 Renatさん、ありがとうございます。自分の過ちを理解した。LotRqdMgnの計算式を変更し、全て正しく動作するようになりました。 削除済み 2010.06.10 03:26 #40 司書の新語、あるいはその隣のすごい...。そこで、そのライブラリを使用するExpert Advisorを作成し、チェックしたところ、すべて動作するようになりました。Expert Advisor、このライブラリ、いくつかのMQL5とMQHのファイルをアーカイブにしました。テスト用にアーカイブをアプリケーション/デベロッパーに渡しました。それでもいいのですが、別の端末でテストを実行することにしました。そこで、アーカイブを解凍し、Expert Advisorをチャートに添付することにしました。そして、端末の日記には、この2行が書かれている。2010.06.10 09:54:51 Experts MechanicalTrading-Infinity-2010 (EURUSD,Daily)(エキスパート メカニカルトレーディング インフィニティ-20102010.06.10 09:54:51 Experts MechanicalTrading-Infinity-2010 (EURUSD,Daily)のロードに失敗しました。ターミナルはディレクトリにあるコンパイル済みのライブラリ(*.ex5)を見ているのに、それをしつこく「シンク」しているのです。このような動作の原因として考えられることをいろいろと試した結果、オリジナルのファイル(*.mq5として)をライブラリのあるフォルダに置くことにしたのです。チャートにEAを追加してみたら......あら、全部動いてる。ゲームを進める中で、さまざまな疑問が出てきた。1.ライブラリが .ex5 でしか表現されない場合、Expert Advisor が動作しないのはなぜですか?2.なぜ端末はこのファイルをディレクトリから頑なに削除するのでしょうか?3.端末のログには、なぜ上記すべてについて明確なコメントがないのでしょうか?4.なぜ、ドキュメントにこの動作が可能であると書かれていないのでしょうか?そして、最後に5つ目の質問ですが、このような場合、どのように対処すればよいのでしょうか、また、何が間違っているのでしょうか(ターミナルでEX5ファイルが1つ見つからず、何か、例えばヘッダーファイルやライブラリそのものを検索している可能性があります)。追記ちなみに、Expert Advisorsでも同じバグがあり、*.ex5ファイルを頑なに削除していました...。:( Errors, bugs, questions 1234567891011...3185 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MarketInfo(Symbol(,MODE_MARGININIT)) = SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL)である。
では、MODE_MARGINREQUIREDには何が対応するのでしょうか?またはそれ以外の場合、購入するために1ロットを開くために必要なフリーマネーの 量を知るにはどうすればよいですか?
mql5クリエイターのMoving Average.mq5 Expert Advisorでは、ロットは次のように計算されます。
ロット計算の際、MaximumRiskが0.02%と小さく、1000で割っているのはなぜですか?この1000は何を表しているのでしょうか?1000=1ロットの購入に必要な資金×100%(0.02%を0.0002分の1に変換するため)とか?つまり、1ロットの購入に使える資金は10ドル(10×100%=1000)です。私が思うに、それは正しい方向なのでしょうか?
そしてもう一つ質問です。未決済注文の最大件数に制限はありますか?
では、MODE_MARGINREQUIREDには何が対応するのでしょうか?または、そうでない場合は、1ロットを購入するために必要な利用可能資金の量を知るにはどうすればよいですか?
そしてもう一つ質問です。未決済注文の最大件数に制限はありますか?
私は自分にこう問いかけました。
以下は、開発者の回答です。
参照
シンボルトレード契約サイズ
売買契約書サイズ
二重
и
シンボル_カレンシー_マージン
マージンを計算する通貨
列
私の理解では、自分で計算する必要があります
gpwr:
mql5クリエイターのMoving Average.mq5 Expert Advisorでは、ロットは次のように計算されます。
ロット計算の際、MaximumRiskが0.02%と小さく、1000で割っているのはなぜですか?この1000は何を表しているのでしょうか?1000=1ロットの購入に必要な資金×100%(0.02%を0.0002分の1に変換するため)とか?つまり、1ロットの購入に使える資金は10ドル(10×100%=1000)です。私が思うに、それは正しい方向なのでしょうか?
そしてもう一つ質問です。未決済注文の最大件数に制限はありますか?
この行は、私の理解が正しければ、リスクを自由資金量の 2%として計算しています。なぜ、この金額を1000で割るのだろう?
しかし、私が正しく理解しているならば、2万ドルの預金(自由資金)で、Expert Advisorはこの金額の2%(400ドル)以下の開設を推奨していることになります。
これを1,000で割ると、論理的には0.4ロットとなる...。
gpwr:
未決済注文の最大件数に制限はありますか?
この行は、私の理解が正しければ、利用可能な資金量の2%としてリスクを計算します。なぜこの金額を1,000で割るのかは、開発者の自由である。
しかし、私は正しく理解している場合は、$ 20,000の預金(フリー資金)で、エキスパート-アドバイザは、この金額($ 400)の2%以上を開けないことをお勧めします。
これを1,000で割ると、論理的には0.4ロットとなる...。
今、私はそれを得た。Moving Average.mq5に誤りがあります。の代わりに
であるべきです。
そうすると、10万ドル(ロットサイズ)/100(レバレッジ)=1000となり、ロットの計算における1000での割り算が明確になります。しかし、mql5の開発者は、このようなExpert Advisorの例を示してはならない。変更する必要があります
への
またはもっと良い
MODE_MARGINREQUIREDが無くなってしまったのは残念ですが。もしかしたら、開発者がこのパラメータを復活させて、計算回数を減らすかもしれませんね。
ショートネームは、これまでインジケーターサブウィンドウでの表示のみに使用されてきました。
バグレポートの置き場所が悪いのでは?そうでない場合は、訂正をお願いします。
私のEAをテストする際、テスターがマージンを正しく判断できるかどうかを確認するために、わざとそのような状況を作りました。そこで、100ドルのデポジット。EURUSDを取引しています。最低敷地面積は0.1です。Expert Advisor には、以下のロット計算のコードがあります。
テスターはこれらのエラーを発生させます。
2010.06.08 22:28:57 Core 1 no enough money [instant buy 0.10 EURUSD at 1.19242].
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.24, NewFreeMargin: -19.24.
2010.06.08 22:28:57 コア1 1000 100
2010.06.08 22:28:57 Core 1 資金不足 [1.19180で0.10EURUSDを即買い]。
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.18, NewFreeMargin: -19.18.
2010.06.08 22:28:57 コア1 1000 100
2010.06.08 22:28:57 Core 1 no enough money [instant buy 0.10 EURUSD at 1.19362].
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.36, NewFreeMargin: -19.36.
2010.06.08 22:28:57 コア1 1000 100
これらのメッセージから判断すると、1ロットの購入に必要な自由証拠金LotRqdMgnは1000となり、正しいようです。FreeMargin=100。0.1ロットに1000を掛けると100になります。1ロット目をオープンするための資金が十分にあるということです。しかし、テスターからは「資金が足りない」と報告されました。エラーはどこにあるのか?
これらのメッセージから、1ロットの購入に必要な自由証拠金LotRqdMgnは1000であり、これは正しいと思われます。FreeMargin=100。0.1ロットに1000を掛けると100になります。1ロット目をオープンするための資金が十分にあるということです。しかし、テスターからは「資金が足りない」と報告される。どこにエラーがあるのか?
残高=100USD、必要証拠 金=100EUR(119USD)の計算を忘れていたのが誤りです。
だから、取引ができないのです。すべてが正しいのです。
残高=100USD、必要証拠金=100EUR(119USD)の計算を忘れていたのが誤りです。
だから、取引ができないのです。すべてが正しいのです。
Renatさん、ありがとうございます。自分の過ちを理解した。LotRqdMgnの計算式を変更し、全て正しく動作するようになりました。
司書の新語、あるいはその隣のすごい...。
そこで、そのライブラリを使用するExpert Advisorを作成し、チェックしたところ、すべて動作するようになりました。Expert Advisor、このライブラリ、いくつかのMQL5とMQHのファイルをアーカイブにしました。テスト用にアーカイブをアプリケーション/デベロッパーに渡しました。
それでもいいのですが、別の端末でテストを実行することにしました。そこで、アーカイブを解凍し、Expert Advisorをチャートに添付することにしました。
そして、端末の日記には、この2行が書かれている。
2010.06.10 09:54:51 Experts MechanicalTrading-Infinity-2010 (EURUSD,Daily)(エキスパート メカニカルトレーディング インフィニティ-2010
2010.06.10 09:54:51 Experts MechanicalTrading-Infinity-2010 (EURUSD,Daily)のロードに失敗しました。
ターミナルはディレクトリにあるコンパイル済みのライブラリ(*.ex5)を見ているのに、それをしつこく「シンク」しているのです。
このような動作の原因として考えられることをいろいろと試した結果、オリジナルのファイル(*.mq5として)をライブラリのあるフォルダに置くことにしたのです。チャートにEAを追加してみたら......あら、全部動いてる。
ゲームを進める中で、さまざまな疑問が出てきた。
1.ライブラリが .ex5 でしか表現されない場合、Expert Advisor が動作しないのはなぜですか?
2.なぜ端末はこのファイルをディレクトリから頑なに削除するのでしょうか?
3.端末のログには、なぜ上記すべてについて明確なコメントがないのでしょうか?
4.なぜ、ドキュメントにこの動作が可能であると書かれていないのでしょうか?
そして、最後に5つ目の質問ですが、このような場合、どのように対処すればよいのでしょうか、また、何が間違っているのでしょうか(ターミナルでEX5ファイルが1つ見つからず、何か、例えばヘッダーファイルやライブラリそのものを検索している可能性があります)。
追記
ちなみに、Expert Advisorsでも同じバグがあり、*.ex5ファイルを頑なに削除していました...。:(