どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 740 1...733734735736737738739740741742743744745746747...1178 新しいコメント 削除済み 2014.10.18 16:31 #7391 evillive: ミニロットじゃなくてピッチの話だけど、まあいいや、忘れてくれ。 あ、そうそう、もちろん、自分のために書いているのでなければ、その辺は考慮しなければなりませんね。 削除済み 2014.10.18 16:49 #7392 evillive:ありがとうございます、すでに説明されています :D自分としては、すべてのチェックを入れて書くのは当然として、ロットをバランス/10比率に持っていく方法のアウトラインがあっただけで、そのアイデアは失敗だった......というのは明らかです。でも、文字数が多いんだから、もっとシンプルでいいんじゃない? lotstep= MarketInfo(Symbol(),MODE_LOTSTEP); lotmax=MarketInfo(Symbol(), MODE_MAXLOT); lotmin=MarketInfo(Symbol(), MODE_MINLOT); lot=lotstep*MathRound(AccountBalance()*0.001/lotstep); if(lot < lotmin) lot = lotmin; if(lot > lotmax) lot = lotmax;もっとシンプルでいいんです。ただ、LotstepのMarketInfo()が0を返した場合はどうなるのでしょうか?どのような結果になるのでしょうか。Expert Advisorが停止し、ポジションが放棄されるのでは?また、ブローカーによってMINLOTが0.03に、LOTSTEPが0.02に設定されている場合、すなわち、最初の2つの許容ロット値が0.03と0.05で、現在の残高が41の場合、コード内の計算ロットの値はどうなりますか。なぜ、ロットが最小値より小さい場合、たとえば残高が1に等しい場合、式が完全に計算された後は0に等しくなります。この場合、コードが最小ロットに等しいロットを取るのはなぜですか?これは0.03になり、つまり「生の」値、この場合0.001に等しい "AccountBalance()*0.001" より30倍多くなる可能性があります。有効なロット値のどれにも該当しないような条件があるため、常に有効なロット値が得られるとは限りません。間違っている状況をすべてプログラム化する必要があり、これが少なくとも仕事の90%であることを忘れてはならない。MetaQuotesが設定した適用モデルは、lot = MINLOT + N * LOTSTEP(N=0、1、2...)である。M.また、Mは、MINLOT + M * LOTSTEP <= MAXLOTかつMINLOT + (M + 1) * LOTSTEP > MAXLOTとなるものである。従って、設定されたモデル内、すなわち、lot = MINLOT + N * LOTSTEPで計算することも必要です。そうすると、MINLOTとLOTSTEPの厄介な組み合わせはどうでもよくなり、この式は一般的な方法で機能するからです。ちゃんと書いて、ちゃんとデバッグして、他の面白いこと、楽しいことに集中すればいいんです。また、「このコードは動かないけど、不具合はある......」というような、出来の悪いコードに何度も戻ってくる必要がなくなるので、とても楽です。 Vitalie Postolache 2014.10.18 17:13 #7393 simpleton:もっとシンプルでいいんです。しかし、MarketInfo()がlotstepに0を返した場合、どうなるのでしょうか?どのような結果になるのでしょうか。Expert Advisorが停止し、ポジションが放棄されるのでは?ブローカーによってMINLOTの値が0.03に、LOTSTEPの値が0.02に設定されている場合、すなわち、最初の2つのロット値が0.03と0.05で、現在のバランスが41で ある場合、コード内の計算ロットの値は何ですか。なぜ、ロットが最小値より小さい場合、例えば、残高が1に等しい場合、完全な計算の後、それは0に等しくなるのでしょうか? なぜ、この場合、コードは最小値に等しいロットを取ります。これは、例えば、0.03で、「生の」値 "AccountBalance()*0.001" より30倍多く、この場合、0.001に等しいのでしょうか?有効なロット値のどれにも該当しないような条件があるため、常に有効なロット値が得られるとは限りません。間違っている状況をすべてプログラム化する必要があり、これが少なくとも仕事の90%であることを忘れてはならない。MetaQuotesが設定した適用モデルは、lot = MINLOT + N * LOTSTEP(N=0、1、2...)である。M.また、Mは、MINLOT + M * LOTSTEP <= MAXLOTかつMINLOT + (M + 1) * LOTSTEP > MAXLOTとなるものである。従って、設定されたモデル内、すなわち、lot = MINLOT + N * LOTSTEPで計算することも必要です。そうすると、MINLOTとLOTSTEPの厄介な組み合わせはどうでもよくなり、この式は一般的な方法で機能するからです。ちゃんと書いて、ちゃんとデバッグして、他の面白いこと、楽しいことに集中すればいいんです。また、「このコードは動かないけど、不具合はある......」というような、出来の悪いコードに何度も戻ってくる必要がなくなるので、とても楽です。そんな恐怖のために、このようなロットで開設する資金が十分にあるかどうかのチェックもある。まともな神経の持ち主であれば、たとえば最小ロットが0.1、ステップが0.1であることを知りながら、ロボットに10ポンドを入金させるようなことはしないでしょう。そして、もしそんな賢い人がいたら、ロボットは「金をくれ、その間にさようなら」と言うでしょう :D.それにロット段差がゼロになるなんて、どこにも書いてないし見たこともない、ファンタジーだ...。 Boris 2014.10.18 17:59 #7394 evillive:そのような恐怖のために、このようなロットで開設する資金が十分にあるかどうかのチェックもある。まともな神経の持ち主なら、例えば最小ロットが0.1、ステップが0.1であることを知りながら、ロボットに10ポンドを入金させることはないでしょう。そして、もしそんな賢い人がいたら、ロボットは「金を出せ、その間にさよならを言え」と言うのです :DテスターでMarketInfoからゼロが出ないようにするために、こうしているのです。 double AFM = AccountFreeMargin(); double StopLevel,FreezeLevel,spr,prot; if(IsOptimization() || IsTesting() || IsVisualMode()) { MinLot = 0.1; LotStep = 0.01; spr = Point*10; StopLevel = spr*2; FreezeLevel = spr*2; } else { MinLot = MarketInfo(Symbol(),MODE_MINLOT); LotStep = MarketInfo(Symbol(),MODE_LOTSTEP); spr = MarketInfo(Symbol(),MODE_SPREAD)*Point; StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; FreezeLevel = MarketInfo(Symbol(),MODE_FREEZELEVEL)*Point; } if(MM == 1) lot = MinLot+MathMax(LotStep*MathFloor((AFM-initdepo)*risk/100),0); else if(MM == 0) lot = MinLot; 削除済み 2014.10.18 23:41 #7395 evillive:そのような恐怖のために、このようなロットで開設する資金が十分にあるかどうかのチェックもある。まともな神経の持ち主なら、例えば最小ロットが0.1、増分が0.1だと知っているロボットに10ポンドを入金させることはないでしょう。そして、もしそんな賢い人がいたら、ロボットは「金を出せ、さようなら」と言うでしょう :Dそれに、ロット段差がゼロというのは見たことも読んだこともない、想像の域を出ない......。なぜひどいのか?簡略化したモデルに当てはまらないから?MINLOT = 0.03 と LOTSTEP = 0.02 の場合、最初の2つの許容ロット値は 0.03 と 0.05 という意味です。 つまり、残高が例えば 41 の場合、あなたのコードではlot=lotstep*MathRound(AccountBalance()*0.001/lotstep);ロット値が0.04となり、これは許されない。ロボットは「サーバーが私のロットサイズは間違っていると言っています」などと言うでしょう。また、MarketInfo()で値を要求する際にエラーが発生した場合、ロットサイズが0になることがある。このエラーを人為的に発生させる方法について、コードをお渡ししました。Print("MarketInfo(\"Фигня\", MODE_LOTSTEP) = ", MarketInfo("Фигня", MODE_LOTSTEP));0を返しますが、どんなファンタジーなんでしょうか? Victor Nikolaev 2014.10.19 00:36 #7396 simpleton:なぜホラーなのか?簡略化したモデルに当てはまらないから?MINLOT = 0.03 と LOTSTEP = 0.02 の場合、最初の2つの許容ロット値は 0.03 と 0.05 という意味です。 つまり、もし残高が例えば 41 であれば、あなたのコードではロット値が0.04となり、これは許されない。ロボットは「サーバーが私のロットサイズは間違っていると言っています」などと言うでしょう。また、MarketInfo()で値を要求する際にエラーが発生した場合、ロットサイズが0になることがある。このエラーを人為的に誘発する方法を、上記のコードでお伝えしました。0を返します。では、どんなファンタジーがあるのでしょうか?lot=lotstep*MathRound(AccountBalance()*0.001/lotstep);この数式は、要件に合わせて簡単に修正することができます。最低ロットを考慮すればよい少し違った印象になりますlot=Min_Lot+lotstep*MathRound((AccountBalance()-X)*0.001/lotstep);ここで、X - 最小ロットの開放のためのバランス。しかし、最低ロットのチェックはやはり必要でしょう。 PokrovMT5 2014.10.19 06:16 #7397 こんにちは。無知な者を助けよ )テスターで注文が開けないエラー10013 Wrong requestが発生した場合、エラーが発生したコードを見てください。ジャーナルのすべての数字が注文に表示され、注文が開きません。2014.10.19 12:14:34.984 2014.02.03 00:06:00 failed request buy 0.10 at 102.31100 sl: 102.27200 tp: 102.33600 [Invalid request] (リクエストが無効です。2014.10.19 12:22:17.928 2014.02.03 00:06:00 ticket =0 retcode =10013MqlTradeRequest Req; MqlTradeResult Res; string TradeSmb; if(TradeSmb=="") TradeSmb=_Symbol; Req.action=TRADE_ACTION_DEAL; Req.symbol=TradeSmb; Req.volume=0.1; Req.type=ORDER_TYPE_BUY; Req.type_filling=ORDER_FILLING_IOC; Req.price = SymbolInfoDouble(_Symbol,SYMBOL_ASK); Req.sl= NormalizeDouble(sym_bid - (StopLoss*sym_point),sym_digits); Req.tp= NormalizeDouble(sym_ask + (TakeProfit*sym_point),sym_digits); Req.deviation=3; Req.comment="777"; if(OrderSend(Req,Res)) { Print("Sent..."); } Print("ticket =",Res.order," retcode =",Res.retcode); if(Res.order!=0) { datetime tm=TimeCurrent(); //--- request all history HistorySelect(0,tm); string comment; bool result=HistoryOrderGetString(Res.order,ORDER_COMMENT,comment); if(result) { Print("ticket:",Res.order," Comment:",comment); } 初心者の方からの質問 MQL5 MT5 MetaTrader Questions from Beginners MQL5 Any rookie question, so Boris 2014.10.19 06:33 #7398 どこに書いてあるんだ!if(OrderSend(Req,Res))ドキュメントをご覧くださいそして、SRCボタンでコードを挿入 してください面倒な人は、1回目、2回目をご覧ください。int OrderSend( string symbol, // символ int cmd, // торговая операция double volume, // количество лотов double price, // цена int slippage, // проскальзывание double stoploss, // stop loss double takeprofit, // take profit string comment=NULL, // комментарий int magic=0, // идентификатор datetime expiration=0, // срок истечения ордера color arrow_color=clrNONE // цвет );学ぶことは決して悪いことではないのです ANDREY 2014.10.19 06:38 #7399 親愛なる皆様へアドバイスをお願いします...。以下はその機能です。 オーダープロフィット( )この関数は、選択された注文の純利益 値を返します。質問どちらの関数も、上記の関数と同様に、選択された注文の利益値の代わりに損失 値を返します。例えば、ある注文が150ドルの損失でSLでクローズした場合、150ドルの損失を 返す関数が必要です。ありがとうございます。 Boris 2014.10.19 06:40 #7400 solnce600:親愛なる皆様へアドバイスをお願いします...。以下はその機能です。 オーダープロフィット( )この関数は、選択された注文の純利益 値を返します。質問どの関数が、上記の関数と同様に、選択された注文の利益ではなく、損失 値を返します。例えば、ある注文が150ドルの損失でSLでクローズした場合、150ドルの損失を 返す関数が必要です。ありがとうございます。 同じです!金額だけがマイナスで出てきます。 1...733734735736737738739740741742743744745746747...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ミニロットじゃなくてピッチの話だけど、まあいいや、忘れてくれ。
ありがとうございます、すでに説明されています :D
自分としては、すべてのチェックを入れて書くのは当然として、ロットをバランス/10比率に持っていく方法のアウトラインがあっただけで、そのアイデアは失敗だった......というのは明らかです。
でも、文字数が多いんだから、もっとシンプルでいいんじゃない?
もっとシンプルでいいんです。ただ、LotstepのMarketInfo()が0を返した場合はどうなるのでしょうか?どのような結果になるのでしょうか。Expert Advisorが停止し、ポジションが放棄されるのでは?
また、ブローカーによってMINLOTが0.03に、LOTSTEPが0.02に設定されている場合、すなわち、最初の2つの許容ロット値が0.03と0.05で、現在の残高が41の場合、コード内の計算ロットの値はどうなりますか。
なぜ、ロットが最小値より小さい場合、たとえば残高が1に等しい場合、式が完全に計算された後は0に等しくなります。この場合、コードが最小ロットに等しいロットを取るのはなぜですか?これは0.03になり、つまり「生の」値、この場合0.001に等しい "AccountBalance()*0.001" より30倍多くなる可能性があります。
有効なロット値のどれにも該当しないような条件があるため、常に有効なロット値が得られるとは限りません。間違っている状況をすべてプログラム化する必要があり、これが少なくとも仕事の90%であることを忘れてはならない。
MetaQuotesが設定した適用モデルは、lot = MINLOT + N * LOTSTEP(N=0、1、2...)である。M.また、Mは、MINLOT + M * LOTSTEP <= MAXLOTかつMINLOT + (M + 1) * LOTSTEP > MAXLOTとなるものである。従って、設定されたモデル内、すなわち、lot = MINLOT + N * LOTSTEPで計算することも必要です。そうすると、MINLOTとLOTSTEPの厄介な組み合わせはどうでもよくなり、この式は一般的な方法で機能するからです。ちゃんと書いて、ちゃんとデバッグして、他の面白いこと、楽しいことに集中すればいいんです。また、「このコードは動かないけど、不具合はある......」というような、出来の悪いコードに何度も戻ってくる必要がなくなるので、とても楽です。
もっとシンプルでいいんです。しかし、MarketInfo()がlotstepに0を返した場合、どうなるのでしょうか?どのような結果になるのでしょうか。Expert Advisorが停止し、ポジションが放棄されるのでは?
ブローカーによってMINLOTの値が0.03に、LOTSTEPの値が0.02に設定されている場合、すなわち、最初の2つのロット値が0.03と0.05で、現在のバランスが41で ある場合、コード内の計算ロットの値は何ですか。
なぜ、ロットが最小値より小さい場合、例えば、残高が1に等しい場合、完全な計算の後、それは0に等しくなるのでしょうか? なぜ、この場合、コードは最小値に等しいロットを取ります。これは、例えば、0.03で、「生の」値 "AccountBalance()*0.001" より30倍多く、この場合、0.001に等しいのでしょうか?
有効なロット値のどれにも該当しないような条件があるため、常に有効なロット値が得られるとは限りません。間違っている状況をすべてプログラム化する必要があり、これが少なくとも仕事の90%であることを忘れてはならない。
MetaQuotesが設定した適用モデルは、lot = MINLOT + N * LOTSTEP(N=0、1、2...)である。M.また、Mは、MINLOT + M * LOTSTEP <= MAXLOTかつMINLOT + (M + 1) * LOTSTEP > MAXLOTとなるものである。従って、設定されたモデル内、すなわち、lot = MINLOT + N * LOTSTEPで計算することも必要です。そうすると、MINLOTとLOTSTEPの厄介な組み合わせはどうでもよくなり、この式は一般的な方法で機能するからです。ちゃんと書いて、ちゃんとデバッグして、他の面白いこと、楽しいことに集中すればいいんです。また、「このコードは動かないけど、不具合はある......」というような、出来の悪いコードに何度も戻ってくる必要がなくなるので、とても楽です。
そんな恐怖のために、このようなロットで開設する資金が十分にあるかどうかのチェックもある。まともな神経の持ち主であれば、たとえば最小ロットが0.1、ステップが0.1であることを知りながら、ロボットに10ポンドを入金させるようなことはしないでしょう。
そして、もしそんな賢い人がいたら、ロボットは「金をくれ、その間にさようなら」と言うでしょう :D.
それにロット段差がゼロになるなんて、どこにも書いてないし見たこともない、ファンタジーだ...。
そのような恐怖のために、このようなロットで開設する資金が十分にあるかどうかのチェックもある。まともな神経の持ち主なら、例えば最小ロットが0.1、ステップが0.1であることを知りながら、ロボットに10ポンドを入金させることはないでしょう。
そして、もしそんな賢い人がいたら、ロボットは「金を出せ、その間にさよならを言え」と言うのです :D
テスターでMarketInfoからゼロが出ないようにするために、こうしているのです。
そのような恐怖のために、このようなロットで開設する資金が十分にあるかどうかのチェックもある。まともな神経の持ち主なら、例えば最小ロットが0.1、増分が0.1だと知っているロボットに10ポンドを入金させることはないでしょう。
そして、もしそんな賢い人がいたら、ロボットは「金を出せ、さようなら」と言うでしょう :D
それに、ロット段差がゼロというのは見たことも読んだこともない、想像の域を出ない......。
なぜひどいのか?簡略化したモデルに当てはまらないから?
MINLOT = 0.03 と LOTSTEP = 0.02 の場合、最初の2つの許容ロット値は 0.03 と 0.05 という意味です。 つまり、残高が例えば 41 の場合、あなたのコードでは
ロット値が0.04となり、これは許されない。ロボットは「サーバーが私のロットサイズは間違っていると言っています」などと言うでしょう。
また、MarketInfo()で値を要求する際にエラーが発生した場合、ロットサイズが0になることがある。このエラーを人為的に発生させる方法について、コードをお渡ししました。
0を返しますが、どんなファンタジーなんでしょうか?
なぜホラーなのか?簡略化したモデルに当てはまらないから?
MINLOT = 0.03 と LOTSTEP = 0.02 の場合、最初の2つの許容ロット値は 0.03 と 0.05 という意味です。 つまり、もし残高が例えば 41 であれば、あなたのコードでは
ロット値が0.04となり、これは許されない。ロボットは「サーバーが私のロットサイズは間違っていると言っています」などと言うでしょう。
また、MarketInfo()で値を要求する際にエラーが発生した場合、ロットサイズが0になることがある。このエラーを人為的に誘発する方法を、上記のコードでお伝えしました。
0を返します。では、どんなファンタジーがあるのでしょうか?
この数式は、要件に合わせて簡単に修正することができます。最低ロットを考慮すればよい
少し違った印象になります
ここで、X - 最小ロットの開放のためのバランス。
しかし、最低ロットのチェックはやはり必要でしょう。
こんにちは。
無知な者を助けよ )テスターで注文が開けないエラー10013 Wrong requestが発生した場合、エラーが発生したコードを見てください。
ジャーナルのすべての数字が注文に表示され、注文が開きません。
2014.10.19 12:14:34.984 2014.02.03 00:06:00 failed request buy 0.10 at 102.31100 sl: 102.27200 tp: 102.33600 [Invalid request] (リクエストが無効です。
2014.10.19 12:22:17.928 2014.02.03 00:06:00 ticket =0 retcode =10013
どこに書いてあるんだ!
ドキュメントをご覧くださいそして、SRCボタンでコードを挿入 してください
面倒な人は、1回目、2回目をご覧ください。
学ぶことは決して悪いことではないのです
親愛なる皆様へ
アドバイスをお願いします...。
以下はその機能です。
この関数は、選択された注文の純利益 値を返します。
質問
どちらの関数も、上記の関数と同様に、選択された注文の利益値の代わりに損失 値を返します。
例えば、ある注文が150ドルの損失でSLでクローズした場合、150ドルの損失を 返す関数が必要です。
ありがとうございます。
親愛なる皆様へ
アドバイスをお願いします...。
以下はその機能です。
この関数は、選択された注文の純利益 値を返します。
質問
どの関数が、上記の関数と同様に、選択された注文の利益ではなく、損失 値を返します。
例えば、ある注文が150ドルの損失でSLでクローズした場合、150ドルの損失を 返す関数が必要です。
ありがとうございます。