[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 424 1...417418419420421422423424425426427428429430431432 新しいコメント Viktar Dzemikhau 2013.06.15 13:12 #4231 gyfto: まあ、理論的には、追加のインジケータバッファを自己宣言して、さらにトレンドラインを使用すれば、うまくいくのでしょうが......。 ではなぜ、ドキュメントには「バッファの数は8を超えてはいけない」と書かれているのでしょうか。ここは明確 ではありません。メインバッファの数とは書いてない、全部とは書いてない。バッファの数が書いてあって、それで終わりです。これを読んでいると、あるインジケーターのバッファの総数に適用されるはずだと理解しているわけです。 Viktar Dzemikhau 2013.06.15 13:15 #4232 gyfto: いいえ、ObjectCreate()のことです、そこでウィンドウ番号を設定する必要があります。サブウィンドウである場合(つまりメインウィンドウであるゼロでない場合)の設定方法を紹介しました。 。 オブジェクトを作成 するときに、WindowOnDroppedという関数パラメータがありますが、これはすでに相対的にメインウィンドウのようなものなのですね。それとも、メインウィンドウはターミナルの一番左のウィンドウ なのでしょうか? prom18 2013.06.15 13:45 #4233 こんにちは!Buystopの注文が削除されない理由がわかりません。extern double Lots =0.01; extern int Magic =333; extern int StopLoss = 100; // Размер фиксированного стопа extern int TakeProfit = 100; // Размер фиксированного тэйка extern int DistanceSet = 160; // Расстояние от рынка extern int Slippage = 3; // Проскальзывание цены color clOpenBuy = LightBlue; // Цвет ордера BuyStop color clOpenSell = LightCoral; // Цвет ордера SellStop string Name_Expert = "Scalp"; string Symb; bool Work=true; extern bool UseSound = True; // Использовать звуковой сигнал extern string NameFileSound = "expert.wav"; // Наименование звукового файла //============================================================================================ int start() { int Total, Tip=-1, Ticket, TicketB, TicketS, TicketMB, TicketMS, buys, sells, mbuys, msells; double OP_PriceSell, OP_PriceBuy, Lot, Lts, Min_Lot, Max_Lot, Step, Free, One_Lot, Price, SL, TP, TP1, PriceB, PriceS, SLB, SLS; bool Ans =false, Opn_B=false, Opn_S=false, Cls_B=false, Cls_S=false; //============================================================================================ // Учёт ордеров Symb=Symbol(); Total=0; buys=0; sells=0; mbuys=0; msells=0; for(int i=1; i<=OrdersTotal(); i++) { if (OrderSelect(i-1,SELECT_BY_POS)==true) { Total++; if(OrderType()==OP_BUYSTOP) buys++; if(OrderType()==OP_SELLSTOP) sells++; if(OrderType()==OP_BUY) mbuys++; if(OrderType()==OP_SELL) msells++; if(OrderType()==OP_BUYSTOP) TicketB=OrderTicket(); if(OrderType()==OP_SELLSTOP) TicketS=OrderTicket(); Ticket=OrderTicket(); Tip =OrderType(); TP =OrderTakeProfit(); Lot =OrderLots(); } } //============================================================================================ // Открытие ордеров while(true) { if (Total==0) { star(); } break; } //============================================================================================ while(true) { if(Total==2) { if(msells==1) { if(buys==1) { if(OrderType()==OP_BUYSTOP && OrderLots()==Lots) { OrderDelete(Ticket); } } } } if(Total==2) { if(mbuys==1) { if(sells==1) { if(OrderType()==OP_SELLSTOP && OrderLots()==Lots) { OrderDelete(Ticket); } } } } break; } //============================================================================================ return; } //============================================================================================ //+------------------------------------------------------------------+ void star() { double ldStop=0, ldTake=0; double pAsk=Ask+DistanceSet*Point; double pBid=Bid-DistanceSet*Point; if (StopLoss!=0) ldStop=pAsk-StopLoss*Point; if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point; SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake); if (StopLoss!=0) ldStop=pBid+StopLoss*Point; if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point; SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake); } //+------------------------------------------------------------------+ //| Установка ордера | //| Параметры: | //| op - операция | //| pp - цена | //| ldStop - уровень стоп | //| ldTake - уровень тейк | //+------------------------------------------------------------------+ void SetOrder(int op, double pp, double ldStop, double ldTake) { color clOpen; string lsComm=GetCommentForOrder(); if (op==OP_BUYSTOP) clOpen=clOpenBuy; else clOpen=clOpenSell; OrderSend(Symbol(),op,Lots,pp,Slippage,ldStop,ldTake,lsComm,0,0,clOpen); if (UseSound) PlaySound(NameFileSound); } //+------------------------------------------------------------------+ //| Генерирует и возвращает строку коментария для ордера или позиции | //+------------------------------------------------------------------+ string GetCommentForOrder() { return(Name_Expert+" "+GetNameTF(Period())); } //+------------------------------------------------------------------+ //| Возвращает наименование таймфрейма | //+------------------------------------------------------------------+ string GetNameTF(int TimeFrame) { switch (TimeFrame) { case PERIOD_MN1: return("Monthly"); case PERIOD_W1: return("Weekly"); case PERIOD_D1: return("Daily"); case PERIOD_H4: return("H4"); case PERIOD_H1: return("H1"); case PERIOD_M30: return("M30"); case PERIOD_M15: return("M15"); case PERIOD_M5: return("M5"); case PERIOD_M1: return("M1"); default: return("UnknownPeriod"); } } //+------------------------------------------------------------------+ gyfto 2013.06.15 14:19 #4234 hoz: では、なぜ「バッファの数は8を超えてはいけない」とドキュメントに書かれているのか、ここが不明確 です。メインバッファの数...全バッファとは書いてない。バッファの数が書いてあって、それで終わりです。それで読んでいると、ある指標のバッファの総数に適用さ れることになっているんです。インジケーターバッファの話じゃなくて、インジケーターバッファのシミュレーションの話ね。IndicatorCounted()からラッパーにArrayResize(CustomBuffer, Bars)があり、右端のトレンドラインの端がbidで再描画されるはずです。ホズ オブジェクトを作成するときに、WindowOnDroppedという関数パラメータがありますが、これはすでに相対的にメインウィンドウのようなものなのです。それとも、メインウィンドウはターミナル内のウィンドウの中で 一番左にあるのでしょうか? いや、私も最初は戸惑いましたよ。例えば、euronとgoldの2つのチャートを開いています。つまり、どちらもインデックスはゼロ。ただし、サブウィンドウがある場合は、1つから番号付けされます。例えば、ユーレンチャートで3つのインデックス、ゴールドで2つ、そして#property separate_windowで5つとも異なるサブウィンドウを投げています。そうすると、eureneはウィンドウ番号が0、1、2、3、ゴールドが0、1、2になります。 gyfto 2013.06.15 15:04 #4235 質問があります。正直、脳みそが沸騰しています。もし可能であれば、私を助けてください。int n=1, limit=3; double result;//или int result, что не столь сейчас важно double temp[]; int start(){ for(int slow=10; slow<=10*limit; slow++){ for(int fast=10; fast<=slow; fast++){ for(int period=1; period<=slow/10; period++){ n++; Print(n-1, ": ", slow-9, ", ", fast-9, ", ", period); //здесь идёт тестирование машки с параметрами slow, fast, period, а результаты тестирования заносим в массив: ArrayResize(temp,n); temp[n-1]=result; } } } //и находим максимальный результат: int max=ArrayMaximum(temp); return(0); }さて、質問ですが、slow、fast、periodの 値をmax(配列中の項目の位置)で復元するにはどうしたらよいでしょうか?temp[]に値を入れる順番は、Print()で指定します。リミットには3を入れましたが、そこは何個でもOKです。以下は、最初の77個の値(limit=2)である。 10: 4, 4, 1 20: 6, 5, 1 30: 8, 2, 1 40: 9, 4, 1 50: 10, 5, 1 60: 11, 3, 1 70: 11, 8, 1 1: 1, 1, 1 11: 5, 1, 1 21: 6, 6, 1 31: 8, 3, 1 41: 9, 5, 1 51: 10, 6, 1 61: 11, 3, 2 71: 11, 8, 2 2: 2, 1, 1 12: 5, 2, 1 22: 7, 1, 1 32: 8, 4, 1 42: 9, 6, 1 52: 10, 7, 1 62: 11, 4, 1 72: 11, 9, 1 3: 2, 2, 1 13: 5, 3, 1 23: 7, 2, 1 33: 8, 5, 1 43: 9, 7, 1 53: 10, 8, 1 63: 11, 4, 2 73: 11, 9, 2 4: 3, 1, 1 14: 5, 4, 1 24: 7, 3, 1 34: 8, 6, 1 44: 9, 8, 1 54: 10, 9, 1 64: 11, 5, 1 74: 11, 10, 1 5: 3, 2, 1 15: 5, 5, 1 25: 7, 4, 1 35: 8, 7, 1 45: 9, 9, 1 55: 10, 10, 1 65: 11, 5, 2 75: 11, 10, 2 6: 3, 3, 1 16: 6, 1, 1 26: 7, 5, 1 36: 8, 8, 1 46: 10, 1, 1 56: 11, 1, 1 66: 11, 6, 1 76: 11, 11, 1 7: 4, 1, 1 17: 6, 2, 1 27: 7, 6, 1 37: 9, 1, 1 47: 10, 2, 1 57: 11, 1, 2 67: 11, 6, 2 77: 11, 11, 2 8: 4, 2, 1 18: 6, 3, 1 28: 7, 7, 1 38: 9, 2, 1 48: 10, 3, 1 58: 11, 2, 1 68: 11, 7, 1 9: 4, 3, 1 19: 6, 4, 1 29: 8, 1, 1 39: 9, 3, 1 49: 10, 4, 1 59: 11, 2, 2 69: 11, 7, 2 Dmitry Fedoseev 2013.06.15 15:46 #4236 gyfto:質問があります。正直、脳みそが沸騰しています。もし可能であれば、私を助けてください。さて、質問ですが、slow、fast、period by max(配列内の項目の位置)の値を復元するにはどうしたらよいでしょうか?temp[]に値を入れる順番は、Print()で指定します。制限に3を入れましたが、何個でもいいです。 n++」は結果が最大かどうかをチェックし、最大であればslow、fastなどの値を記憶する。 Dmitry Fedoseev 2013.06.15 15:52 #4237 遅い、速い...でさらに3つの配列(または1つの3次元配列)を作ればいいんです。この方が、結果を何らかの方法でソートしたい場合に、常にテストパラメータが利用できるため、良い。 Dmitry Fedoseev 2013.06.15 15:58 #4238 これらのアクションが頻繁にある場合、例えば、1バーまたは10バーごとに1回、initemで結果用の配列とパラメータ値で3つの配列をスケールし、これらのループをスクロールし、配列に期間の値を埋める方が良いです。そして、それを1ループでスクロールさせる。そして、ArrayMaximum関数を使って、物事を整理することができるようになります。そうすることで、少しでも早く作業ができるようになります。 Viktar Dzemikhau 2013.06.15 16:20 #4239 gyfto:いや、私も最初は戸惑いましたよ。例えば、ユーロと金という2つのチャートを開いています。つまり、どちらもインデックスはゼロ。ただし、サブウィンドウがある場合は、1つから番号付けされます。例えば、ユーレンチャートで3つのインデックス、ゴールドで2つ、そして#property separate_windowで5つとも異なるサブウィンドウを投げています。そうすると、エウレンはウィンドウ番号が0、1、2、3、ゴールドは0、1、2ということになります。 そのとおりです。ただ、私は七面鳥を扱う仕事が全くないので、ヘルプを勉強しているときに注意しなかったんです。すべてに意味がある。ジフトインジケーターバッファーの話ではなく、インジケーターバッファーのシミュレーションの話です。IndicatorCounted()のラッパーにArrayResize(CustomBuffer, Bars)があり、右端のトレンドラインの端がBidで再描画されるはずです。 そして、具体的にどうすれば6本以上の線をグラフに描けるのかを聞いていたのです。どのウィンドウで(0でもいいし、他でもいい)。それが私の一番の関心事であり、そもそも私があなたに尋ねたことでもあるのです。 gyfto 2013.06.15 16:24 #4240 Integer: ここで、"n++"は結果が最大であるかどうかをチェックし、最大であれば、slow、fastなどの値を記憶する 考えてもみなかった。Integer: Slow、Fast...の3つの配列(または1つの3次元配列)をさらに作ることができます。その方が、結果を何らかの方法でソートしたい場合に、常にテストパラメータが利用できるからです。 。 3次元が理想ですが、ArrayMaximum()は 1次元でしか動作しないので、配列を線形に収束させる必要があり、また、すべてのものがどこにあるのか把握する必要があります。でも、fastMax=slowにしているので、そこが悩みどころです。しかし、3種類のアレイは...同じ結果になったので、立体かリニアのどちらかですね。整数値: 結果用のスケール配列 この用語がわからないのですが、説明してください。立方体の中に長さの線形配列を作る?まあ、少なくとも選択肢はすでにあるわけですが。MathMax(result, resultPrev)を経由する。 1...417418419420421422423424425426427428429430431432 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
まあ、理論的には、追加のインジケータバッファを自己宣言して、さらにトレンドラインを使用すれば、うまくいくのでしょうが......。
ではなぜ、ドキュメントには「
いいえ、ObjectCreate()のことです、そこでウィンドウ番号を設定する必要があります。サブウィンドウである場合(つまりメインウィンドウであるゼロでない場合)の設定方法を紹介しました。
。
オブジェクトを作成 するときに、WindowOnDroppedという関数パラメータがありますが、これはすでに相対的にメインウィンドウのようなものなのですね。それとも、メインウィンドウはターミナルの一番左のウィンドウ なのでしょうか?
こんにちは!Buystopの注文が削除されない理由がわかりません。
では、なぜ「
インジケーターバッファの話じゃなくて、インジケーターバッファのシミュレーションの話ね。IndicatorCounted()からラッパーにArrayResize(CustomBuffer, Bars)があり、右端のトレンドラインの端がbidで再描画されるはずです。
オブジェクトを作成するときに、WindowOnDroppedという関数パラメータがありますが、これはすでに相対的にメインウィンドウのようなものなのです。それとも、メインウィンドウはターミナル内のウィンドウの中で 一番左にあるのでしょうか?
質問があります。正直、脳みそが沸騰しています。もし可能であれば、私を助けてください。
さて、質問ですが、slow、fast、periodの 値をmax(配列中の項目の位置)で復元するにはどうしたらよいでしょうか?temp[]に値を入れる順番は、Print()で指定します。リミットには3を入れましたが、そこは何個でもOKです。以下は、最初の77個の値(limit=2)である。
質問があります。正直、脳みそが沸騰しています。もし可能であれば、私を助けてください。
さて、質問ですが、slow、fast、period by max(配列内の項目の位置)の値を復元するにはどうしたらよいでしょうか?temp[]に値を入れる順番は、Print()で指定します。制限に3を入れましたが、何個でもいいです。
n++」は結果が最大かどうかをチェックし、最大であればslow、fastなどの値を記憶する。
いや、私も最初は戸惑いましたよ。例えば、ユーロと金という2つのチャートを開いています。つまり、どちらもインデックスはゼロ。ただし、サブウィンドウがある場合は、1つから番号付けされます。例えば、ユーレンチャートで3つのインデックス、ゴールドで2つ、そして#property separate_windowで5つとも異なるサブウィンドウを投げています。そうすると、エウレンはウィンドウ番号が0、1、2、3、ゴールドは0、1、2ということになります。
そのとおりです。ただ、私は七面鳥を扱う仕事が全くないので、ヘルプを勉強しているときに注意しなかったんです。すべてに意味がある。
インジケーターバッファーの話ではなく、インジケーターバッファーのシミュレーションの話です。IndicatorCounted()のラッパーにArrayResize(CustomBuffer, Bars)があり、右端のトレンドラインの端がBidで再描画されるはずです。
ここで、"n++"は結果が最大であるかどうかをチェックし、最大であれば、slow、fastなどの値を記憶する
考えてもみなかった。
Slow、Fast...の3つの配列(または1つの3次元配列)をさらに作ることができます。その方が、結果を何らかの方法でソートしたい場合に、常にテストパラメータが利用できるからです。
。
3次元が理想ですが、ArrayMaximum()は 1次元でしか動作しないので、配列を線形に収束させる必要があり、また、すべてのものがどこにあるのか把握する必要があります。でも、fastMax=slowにしているので、そこが悩みどころです。しかし、3種類のアレイは...同じ結果になったので、立体かリニアのどちらかですね。
結果用のスケール配列
この用語がわからないのですが、説明してください。立方体の中に長さの線形配列を作る?
まあ、少なくとも選択肢はすでにあるわけですが。MathMax(result, resultPrev)を経由する。