初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1501 1...1494149514961497149814991500150115021503 新しいコメント Sergey Voytsekhovsky 2024.02.23 15:52 #15001 Sergey Voytsekhovsky #:こんばんは。どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば読めるのか、教えていただけませんか?入力はちょうど3より大きい正の整数の配列で、出力はNOD(最大公約数)です。ユークリッドのアルゴリズムに基づいて自分で書こうとしましたが、混乱してしまいました。一般的に、私は経験が不足している。もし、どなたか合格された方がいらっしゃいましたら、労作と思わずに、情報をお聞かせください。ありがとうございました! アルゴリズム自体は複雑ではない。紙や電卓で計算するのは簡単ですが、MQL5の言語に翻訳することはできません! MrBrooklin 2024.02.23 16:13 #15002 Sergey Voytsekhovsky #: ...ユークリッドのアルゴリズムに基づいて自分で書こうと したが、混乱してしまった。一般的に経験が不足している. ...ー アルゴリズムそのものはー紙や電卓で計算するのは簡単だが、MQL5言語に翻訳することができない! フォーラムでの私のコミュニケーション経験から言うと、すでに書いたコードを見せれば、より早く回答が得られるし、コードのどこにエラーがあるのか教えてくれるだろう。 ありがとう、ウラジミール。 Yuriy Bykov 2024.02.23 16:22 #15003 ulong gcd(ulong a, ulong b) { ulong c; if(a < b) { c = a; a = b; b = c; } while(b > 0) { c = a % b; a = b; b = c; } return a; } ulong ArrayGcd(ulong &a[]) { int n = ArraySize(a); if(n == 1) { return 0; } ulong c = gcd(a[0], a[1]); for(int i = 2; i < n; i++) { c = gcd(a[i], c); if(c == 1) { break; } } return c; } int OnInit() { PrintFormat("gcd(35, 140) = %d", gcd(35, 140)); PrintFormat("gcd(35, 147) = %d", gcd(35, 147)); PrintFormat("gcd(35, 149) = %d", gcd(35, 149)); ulong a1[] = {35, 140, 28, 7}; ulong a2[] = {35, 140, 28, 6}; ulong a3[] = {32, 140, 28, 16}; PrintFormat("gcd(35, 140, 28, 7) = %d", ArrayGcd(a1)); PrintFormat("gcd(35, 140, 28, 6) = %d", ArrayGcd(a2)); PrintFormat("gcd(32, 140, 28, 16) = %d", ArrayGcd(a3)); return(INIT_SUCCEEDED); } Sergey Voytsekhovsky 2024.02.23 16:42 #15004 MrBrooklin #:私のフォーラムでのコミュニケーションの実践から言えることは、すでに書いたコードを一度に見せれば、相手は早く答えてくれるし、コードのどこにエラーがあるのかも教えてくれる。よろしく、ウラジミール。 ご意見ありがとうございます。やってみよう。理解のために簡単に背景を説明します。私は、メインチャートに重ね合わせたRenkoベースのインジケータでこの関数を使用する予定です。現在のレンガの大きさを判断する必要があります。ZigZagはRenkoチャートに基づいて構築されており、トップとボトムの2つの配列を持っています。レンガのサイズを自動的に調整するために、それらの間の距離のGreatestCommonDividerを決定する必要があります。 今のところ、このようなクラコザブラをスケッチしただけで終わりです。 //+------------------------------------------------------------------+ //| Вычисляем значение НОД(НаибольшийОбщийДелитель)=размера кирпичика| //+------------------------------------------------------------------+ int CalculateBrickSize(int &size_brick, double &Arr_PeakBuff[], double &Arr_BottomBuff[]) { int size_zigbuf = 0; double peak = 0.0; double bottom = 0.0; int zigLag = 0.0; int Arr_ZigLag[]; if(!ArrayGetAsSeries(Arr_PeakBuff)) ArraySetAsSeries(Arr_PeakBuff, true); if(!ArrayGetAsSeries(Arr_BottomBuff)) ArraySetAsSeries(Arr_BottomBuff, true); ArrayInitialize(Arr_ZigLag, 0.00); size_zigbuf = MathMin(ArraySize(Arr_PeakBuff), ArraySize(Arr_BottomBuff)); size_zigbuf = MathMin(size_zigbuf, ChartVisibleBars()) - 1; if(size_zigbuf > 0) ArrayResize(Arr_ZigLag, size_zigbuf); for(int i = 0; i < size_zigbuf; i++) { if(Arr_PeakBuff[i] != EMPTY_VALUE) peak = NormalizeDouble(Arr_PeakBuff[i], _Digits); if(Arr_BottomBuff[i] != EMPTY_VALUE) bottom = NormalizeDouble(Arr_BottomBuff[i], _Digits); if(peak == 0 || bottom == 0) { zigLag = 1; } else zigLag = (int)DoubleToString(MathAbs(peak - bottom)*100000, 0); Arr_ZigLag[i] = zigLag; } //--- int delimoe = 0; int delitel = 1; int ostatok = 1; ArraySort(Arr_ZigLag); for(int i = ArraySize(Arr_ZigLag)-1; i > 0; i--) { if(Arr_ZigLag[i] != Arr_ZigLag[i-1]) { if(delimoe == 0) delimoe = MathMax(Arr_ZigLag[i], Arr_ZigLag[i-1]); if(delitel == 1) delitel = MathMin(Arr_ZigLag[i], Arr_ZigLag[i-1]); ostatok = (int)MathMod(delimoe, delitel); if(ostatok == 0) { delimoe = delitel; delitel = 1; ostatok = 1; continue; } else while(ostatok != 0) { ostatok = (int)MathMod(delimoe, delitel); delimoe = delitel; delitel = ostatok; } } } //Print("delimoe = ", delimoe); //Print("delitel = ", delitel); //Print("ostatok = ", ostatok); return(size_brick); } //+------------------------------------------------------------------+ Sergey Voytsekhovsky 2024.02.23 16:46 #15005 もちろん、これはただの草稿なので、厳しく判断しないでほしい。もっとシンプルで明快な解決策を見つけなければならないのだが、まだ頭に入ってこない......。 Yuriy Bykov 2024.02.23 16:55 #15006 Sergey Voytsekhovsky #: もちろん、これは単なる草案であり、厳しく判断しないでほしい。もっとシンプルで明確な解決策を見つけなければならないのですが、まだ思いつきません...。 セルゲイ、NODを求めたい数値の配列を作り、前の記事のArrayGcd()関数に渡すんだ。しかし、この場合にNODを使えるかどうかはわかりません。あなたは、自明でない公約数の存在を保証し、それらの間に厳密な関係を持たない数についてそれを計算したいようです。そうすれば、高い確率で常にNOD = 1となる。 Sergey Voytsekhovsky 2024.02.23 17:02 #15007 Yuriy Bykov #: Sergey、NODを見つけたい数値の配列を作り、それを私の前の投稿のArrayGcd()関数に渡してください。 ありがとう、前回の投稿を送った後にあなたのメッセージを見ました。 Yuriy Bykov 2024.02.23 17:10 #15008 Sergey Voytsekhovsky #:ありがとう。前回のメッセージを送った後で、あなたのメッセージを見ました。 コード中のいたるところでulongをintに置き換えることができますが、その場合、配列内のすべての数値が正であることを確認する必要があります。 Sergey Voytsekhovsky 2024.02.23 17:29 #15009 Yuriy Bykov #: セルゲイ、NODを見つけたい数値の配列を作り、前の記事のArrayGcd()関数に渡す。 しかし、このケースでNODを使えるかどうかはわかりません。自明でない公約数が存在し、それらの間に厳密な関係がない数について計算したいようです。 そうすれば、高い確率で常にNOD = 1となる。 おそらく確認する必要があり、それはアルゴリズムをコーディングした後になります。ご意見ありがとうございました。 psihodelit 2024.02.24 00:19 #15010 あるEAから別のEAに機能をインポート することは可能でしょうか? 例えば、注文をオープンするEAがあり、口座の状態を監視するEAがあり、そこではドローダウンなどのパラメータが指定されています、 2つ目のEAのドローダウンに達すると、1つ目のEAは注文を出さないようにしたいのですが・・・。 例えばどうすればいいでしょうか? 1...1494149514961497149814991500150115021503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんばんは。
どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば、どこに行けば読めるのか、教えていただけませんか?
入力はちょうど3より大きい正の整数の配列で、出力はNOD(最大公約数)です。
ユークリッドのアルゴリズムに基づいて自分で書こうとしましたが、混乱してしまいました。一般的に、私は経験が不足している。
もし、どなたか合格された方がいらっしゃいましたら、労作と思わずに、情報をお聞かせください。ありがとうございました!
アルゴリズム自体は複雑ではない。紙や電卓で計算するのは簡単ですが、MQL5の言語に翻訳することはできません!
Sergey Voytsekhovsky #:
...ユークリッドのアルゴリズムに基づいて自分で書こうと したが、混乱してしまった。一般的に経験が不足している.
...ー アルゴリズムそのものはー紙や電卓で計算するのは簡単だが、MQL5言語に翻訳することができない!
フォーラムでの私のコミュニケーション経験から言うと、すでに書いたコードを見せれば、より早く回答が得られるし、コードのどこにエラーがあるのか教えてくれるだろう。
ありがとう、ウラジミール。
私のフォーラムでのコミュニケーションの実践から言えることは、すでに書いたコードを一度に見せれば、相手は早く答えてくれるし、コードのどこにエラーがあるのかも教えてくれる。
よろしく、ウラジミール。
ご意見ありがとうございます。やってみよう。理解のために簡単に背景を説明します。私は、メインチャートに重ね合わせたRenkoベースのインジケータでこの関数を使用する予定です。現在のレンガの大きさを判断する必要があります。ZigZagはRenkoチャートに基づいて構築されており、トップとボトムの2つの配列を持っています。レンガのサイズを自動的に調整するために、それらの間の距離のGreatestCommonDividerを決定する必要があります。
今のところ、このようなクラコザブラをスケッチしただけで終わりです。
もちろん、これは単なる草案であり、厳しく判断しないでほしい。もっとシンプルで明確な解決策を見つけなければならないのですが、まだ思いつきません...。
Sergey、NODを見つけたい数値の配列を作り、それを私の前の投稿のArrayGcd()関数に渡してください。
ありがとう、前回の投稿を送った後にあなたのメッセージを見ました。
ありがとう。前回のメッセージを送った後で、あなたのメッセージを見ました。
セルゲイ、NODを見つけたい数値の配列を作り、前の記事のArrayGcd()関数に渡す。
おそらく確認する必要があり、それはアルゴリズムをコーディングした後になります。ご意見ありがとうございました。
あるEAから別のEAに機能をインポート することは可能でしょうか?
例えば、注文をオープンするEAがあり、口座の状態を監視するEAがあり、そこではドローダウンなどのパラメータが指定されています、
2つ目のEAのドローダウンに達すると、1つ目のEAは注文を出さないようにしたいのですが・・・。
例えばどうすればいいでしょうか?