MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 805 1...798799800801802803804805806807808809810811812...1953 新しいコメント Vitaly Muzichenko 2019.04.08 12:07 #8041 Sfinks35: こんにちは。 私は今、それを手に入れたようです。しかし、コンパイル時に、「ライン上での型変換により、データが失われる可能性が ある」という警告が1つ出ます。 index = GetPatt5barsDN(index); コンパイル時に関数ヘッダ(または関数自体)にエラーはない。double low3 = 0; int index = 0; low3 = GetPatt5barsDN(index); // Здесь передача значения по ссылке Print("low3= ", low3); Print("index= ", index); Roman Sharanov 2019.04.08 13:04 #8042 はじめまして、質問があります。最適化の際に、あるパスをスキップする方法はありますか? 例えば、2つのMA(fastとslow)を使ってロボットを最適化する場合、それぞれ10個から始めて1000個で終了させます。 遅いパスの周期が速いパスの周期より短い場合、パスをスキップするにはどうすればよいですか? Igor Zakharov 2019.04.08 13:07 #8043 Roman Sharanov:はじめまして、質問があります。最適化の際に、あるパスをスキップする方法はありますか? 例えば、2つのMA(fastとslow)を使ってロボットを最適化する場合、それぞれ10個から始めて1000個で終了させます。 遅いパスの周期が速いパスの周期より短い場合、パスをスキップするにはどうすればよいですか?この場合、初期化中に return(INIT_PARAMETERS_INCORRECT) を実行してください。 Roman Sharanov 2019.04.08 13:27 #8044 Igor Zakharov:この場合、初期化時に return(INIT_PARAMETERS_INCORRECT) を実行するようにしてください。しゃい Youri Lazurenko 2019.04.08 15:31 #8045 こんにちは。誰が教えてくれるんだ。3種類のTS、3種類のEAで、3種類のマジックナンバーで、異なるペアで。しかし、これらは共通の特徴を持っています - 特定の条件(注文 数と小さな利益)に達したときに(OrderClose()関数を使用して)注文を閉じることです。テスターでは問題ないのですが、実際には、あるペアでOrder Close()関数がトリガーすると、条件を満たすかどうかに関わらず、他のペアでもこの関数(OrderClose())がトリガーする印象があります。この原因は何でしょうか? ユーザー定義のClose()関数でしょうか? 以下は、終了条件とカスタムClose()関数です。 if(CountBuy() >= 1 && CountSell() >= 1 && CountSymbolTotal() >= NumberOrder) { int i; int total = OrdersTotal(); double accruals = CalculateCommission() + CalculateSwapBuy() + CalculateSwapSell(); if((CountProfitBuy() + CountProfitSell()) >= (MaxOrderProfit*GetLots()+ accruals)) { for(i = total-1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY) OrderCloseX(); } } } for(i = total-1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_SELL) OrderCloseX(); } } } } } //--------------------- void OrderCloseX() { int i; int ticket = -1; int k = OrdersTotal(); for(i = k - 1; i >= 0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if((OrderType() == OP_BUY || OrderType() == OP_SELL) ) { ticket = OrderTicket(); } } } if(OrderTicket() != ticket) if(!OrderSelect(ticket, SELECT_BY_TICKET)) Print("Ошибка в выборе ордеров!"); while(true) { int error; bool result = true; if (OrderType()==OP_BUY) result = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, 0); if (OrderType()==OP_SELL) result = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, 0); if(result != TRUE) { error = GetLastError(); Print("LastError = ", error); } else { error = 0; } if(error == 135) RefreshRates(); else break; } } Igor Makanu 2019.04.08 16:28 #8046 Youri Lazurenko:こんにちは。誰が教えてくれるんだ。3種類のTS、3種類のEAで、3種類のマジックナンバーで、異なるペアで。しかし、これらは共通の特徴を持っています - 特定の条件(注文 数と小さな利益)に達したときに(OrderClose()関数を使用して)注文を閉じることです。テスターでは問題ないのですが、実際には、あるペアでOrder Close()関数がトリガーすると、条件を満たすかどうかに関わらず、他のペアでもこの関数(OrderClose())がトリガーする印象があります。この原因は何でしょうか? もしかしたら、ユーザー定義のClose()関数にあるのでしょうか? 以下は、終了条件とユーザー定義のClose()関数です。 まず、OrderSelect()で注文をチェックするのは、本来であれば、シンボルと注文マスター番号を制御して、OrderCloseX()で注文を閉じて、再度注文を検索しますが、OrderSelect()ではシンボルとマスター番号を制御しないのは、なぜでしょうか コード全体を書き換えないためにも、OrderCloseX()を追加した方がいいと思います。 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) Youri Lazurenko 2019.04.08 19:15 #8047 Igor Makanu:まず、OrderSelect() で注文をチェックし、シンボルと注文マスター番号を管理し、次に OrderCloseX() で注文を閉じ、再び注文を検索しますが、何らかの理由で OrderSelect() でシンボルとマスター番号を管理しません。 すべてのコードを書き直さないために、OrderCloseX()を追加する必要があると思います。 ありがとうございます。訂正させていただきます。すでに修正済み。おそらくこれが原因でしょう。OrderCloseX()関数がペアの1つで呼び出され、それが他のすべてのペアとマジックナンバーで機能します。そうかもしれない、そうかもしれない。いつもありがとうございます。 Seric29 2019.04.09 04:33 #8048 Igor Makanu:桁数 - 定義済み変数また、この関数を使うことにしたのですが、例えば1.00000のように事務所の桁数が5で、最後の値がゼロの場合、5桁ではなくゼロを返すかもしれない、例えば1.24700のように見える数値は小数点以下が5であるはずなのに、3桁を返すかもしれないと読んだのですが本当でしょうか。 Igor Makanu 2019.04.09 06:31 #8049 Seric29:また、この関数を使うことにしたのですが、安定した5文字の桁数、例えば1.00000で最後の値が0の場合、5文字ではなく0を返すことがあるとか、例えば1.24700のように見える数字が、5文字のはずなのに小数点3桁で返すとか書いてありましたが、本当ですか?桁は NormalizeDouble で使用します。 https://docs.mql4.com/ru/convert/normalizedouble NormalizeDouble - Преобразование данных - Справочник MQL4 docs.mql4.com Рассчитываемые значения StopLoss, TakeProfit, а также значения цены открытия отложенных ордеров, должны быть нормализованы с точностью, значение которой можно получить функцией Digits(). Нужно... Roman Sharanov 2019.04.09 13:56 #8050 突然、すべての端末がブローカーと接続できなくなったのだ。どこもかしこも接続に失敗しています。ログイン画面では、サーバーを選択することができず、空白になっています。今まで何も変えていないし、何もインストールしていないし、何も削除していない。その理由は何ですか? 1...798799800801802803804805806807808809810811812...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
私は今、それを手に入れたようです。
しかし、コンパイル時に、「ライン上での型変換により、データが失われる可能性が ある」という警告が1つ出ます。
index = GetPatt5barsDN(index);
コンパイル時に関数ヘッダ(または関数自体)にエラーはない。
はじめまして、質問があります。最適化の際に、あるパスをスキップする方法はありますか?
例えば、2つのMA(fastとslow)を使ってロボットを最適化する場合、それぞれ10個から始めて1000個で終了させます。
遅いパスの周期が速いパスの周期より短い場合、パスをスキップするにはどうすればよいですか?
はじめまして、質問があります。最適化の際に、あるパスをスキップする方法はありますか?
例えば、2つのMA(fastとslow)を使ってロボットを最適化する場合、それぞれ10個から始めて1000個で終了させます。
遅いパスの周期が速いパスの周期より短い場合、パスをスキップするにはどうすればよいですか?
この場合、初期化中に return(INIT_PARAMETERS_INCORRECT) を実行してください。
この場合、初期化時に return(INIT_PARAMETERS_INCORRECT) を実行するようにしてください。
しゃい
こんにちは。誰が教えてくれるんだ。3種類のTS、3種類のEAで、3種類のマジックナンバーで、異なるペアで。しかし、これらは共通の特徴を持っています - 特定の条件(注文 数と小さな利益)に達したときに(OrderClose()関数を使用して)注文を閉じることです。テスターでは問題ないのですが、実際には、あるペアでOrder Close()関数がトリガーすると、条件を満たすかどうかに関わらず、他のペアでもこの関数(OrderClose())がトリガーする印象があります。この原因は何でしょうか? ユーザー定義のClose()関数でしょうか?
以下は、終了条件とカスタムClose()関数です。
こんにちは。誰が教えてくれるんだ。3種類のTS、3種類のEAで、3種類のマジックナンバーで、異なるペアで。しかし、これらは共通の特徴を持っています - 特定の条件(注文 数と小さな利益)に達したときに(OrderClose()関数を使用して)注文を閉じることです。テスターでは問題ないのですが、実際には、あるペアでOrder Close()関数がトリガーすると、条件を満たすかどうかに関わらず、他のペアでもこの関数(OrderClose())がトリガーする印象があります。この原因は何でしょうか? もしかしたら、ユーザー定義のClose()関数にあるのでしょうか?
以下は、終了条件とユーザー定義のClose()関数です。
まず、OrderSelect()で注文をチェックするのは、本来であれば、シンボルと注文マスター番号を制御して、OrderCloseX()で注文を閉じて、再度注文を検索しますが、OrderSelect()ではシンボルとマスター番号を制御しないのは、なぜでしょうか
コード全体を書き換えないためにも、OrderCloseX()を追加した方がいいと思います。
まず、OrderSelect() で注文をチェックし、シンボルと注文マスター番号を管理し、次に OrderCloseX() で注文を閉じ、再び注文を検索しますが、何らかの理由で OrderSelect() でシンボルとマスター番号を管理しません。
すべてのコードを書き直さないために、OrderCloseX()を追加する必要があると思います。
ありがとうございます。訂正させていただきます。すでに修正済み。おそらくこれが原因でしょう。OrderCloseX()関数がペアの1つで呼び出され、それが他のすべてのペアとマジックナンバーで機能します。そうかもしれない、そうかもしれない。いつもありがとうございます。
桁数 - 定義済み変数
また、この関数を使うことにしたのですが、例えば1.00000のように事務所の桁数が5で、最後の値がゼロの場合、5桁ではなくゼロを返すかもしれない、例えば1.24700のように見える数値は小数点以下が5であるはずなのに、3桁を返すかもしれないと読んだのですが本当でしょうか。
また、この関数を使うことにしたのですが、安定した5文字の桁数、例えば1.00000で最後の値が0の場合、5文字ではなく0を返すことがあるとか、例えば1.24700のように見える数字が、5文字のはずなのに小数点3桁で返すとか書いてありましたが、本当ですか?
桁は NormalizeDouble で使用します。
https://docs.mql4.com/ru/convert/normalizedouble