MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 372 1...365366367368369370371372373374375376377378379...1953 新しいコメント Maxim Kuznetsov 2017.11.09 12:40 #3711 PokrovMT5:マキシム、良い一日!バリアントをありがとう、私のはほとんど同じですが、それはまた、動作しますが、Alekseu Fedotovは それを示唆し、私はそれを修正する方法のアイデアがあることを書いた?再描画を気にしない場合(例えば、今のようにとにかく再計算する場合) -OnCalculate関数から、再計算したい場所(あなたの場合、前の時間のバー)を返します。return rates_total-iBarShift(_Symbol,_Period,time[0]-TimeMinute(time[0])*60-TimeSeconds(time[0])-1 ); // これについて、「手探りで、確認しない」と書いて、アプローチの実証をしています。 Konstantin Erin 2017.11.09 12:44 #3712 MakarFX: したのですが、それでは問題が解決しないので // #property copyright "Copyright © 2005, Yura Prokofiev" // #property link "Yura.prokofiev@gmail.com" #property strict #property indicator_separate_window #property indicator_buffers 3 extern int Barrs = 10; // Баров для расчета extern string simvol = "EURGBP"; double Buf_0[], Buf_1[], Buf_2[]; void OnInit() { SetIndexStyle(0,DRAW_NONE); SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,Yellow); SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,2,Red); IndicatorDigits((int)SymbolInfoInteger(simvol,SYMBOL_DIGITS)); SetIndexBuffer(0,Buf_0); SetIndexBuffer(1,Buf_1); SetIndexBuffer(2,Buf_2); IndicatorShortName("Fisher "+simvol); SetIndexLabel(1,NULL); SetIndexLabel(2,NULL); } int start() { int i, limit, counted_bars=IndicatorCounted(); double prev,current; double Value=0, Value1=0, Value2=0, Fish=0, Fish1=0, Fish2=0; double price, MinL=0, MaxH=0; if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i=0; i<limit; i++) { MaxH = iHigh(simvol, 0, iHighest(simvol, 0, MODE_HIGH,Barrs,i)); MinL = iLow (simvol, 0, iLowest (simvol, 0, MODE_LOW, Barrs,i)); price = (iHigh(simvol, 0, i) + iLow(simvol, 0, i))/2; if(MaxH != MinL) Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1; Value=MathMin(MathMax(Value,-0.999),0.999); Buf_0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1; Value1=Value; Fish1=Buf_0[i]; } bool up=true; for(i=limit-2; i>=0; i--) { current=Buf_0[i]; prev=Buf_0[i+1]; if(((current<0)&&(prev>0))||(current<0)) up= false; if(((current>0)&&(prev<0))||(current>0)) up= true; Buf_1[i]=0; Buf_2[i]=0; if(!up) Buf_2[i]=current; else Buf_1[i]=current; } return 0; } 下は 古い、上は新しい使用するチャートのタイムフレームは、インジケータ-ゼロが立っているもの Konstantin Erin 2017.11.09 12:55 #3713 YarTrade:新しいバーが表示されたときにバッファーをリセットする方法を教えてください。ただし、以前のデータは消去されずにチャートに表示されます。な ぜかバッファをゼロにリセット できず、新しいバーが表示さ れると、古い蓄積データの上に新しいデータが重なって 表示されます。私のコードのどこが間違っているのでしょうか?分かりやすい説明ありがとうございます。新しいバーが 表示されると、端末は新しいNULL項目をバッファに追加します。3行目で ...6はまさにゼロにする ことです。それ以外はすべて保存 YarTrade 2017.11.09 12:58 #3714 STARIJ:新しいバーが 表示されると、端末は新しいNULL要素をバッファに追加します。3行目で ...... 6は正確にゼロに なります。その他の要素はすべて保持ヒストグラムのバーは、新しいバーの 出現ですぐに伸び、その後も伸び続けるのに、次のバーが出現すると前のバーが伸びるのはなぜですか? Konstantin Erin 2017.11.09 13:08 #3715 YarTrade: 新しいバーの 出現直後のヒストグラムのバーは、前のバーの伸びを持ち、その後も伸び続け、次のバーの出現時には、前のバーの伸びを持つのはなぜでしょうか。 和があるんですねV2 = V1 + V2; ijonhson 2017.11.09 13:09 #3716 皆さんこんにちは、自分では解りません、不注意かもしれませんが、ポルターガイストのようなものです。int ticket_order=0; void OnTick() { if(OrdersTotal()==0) { // километр кода ticket_order=OrderSend(Symbol(),up_down,lots,Ask,3,0,0); } if(OrdersTotal()==1) { OrderSelect(ticket_order,SELECT_BY_TICKET); bool Ans=OrderModify(ticket_order,Price,SL,TP,0); } } 何を責めるべきかわからない、OrderModify()やOrderSelectでチケットを参照送信して、何とか変更した方がいいのでは? Konstantin Erin 2017.11.09 13:16 #3717 ijonhson: エラーメッセージ 誤ったチケット(OrderModify()) 似たようなものがありましたね。1つ目と2つ目の条件文をガッツリ並べ替える-というのが有効かもしれません。 Tretyakov Rostyslav 2017.11.09 13:23 #3718 STARIJ:下は古い、上は新しい使用するチャートのタイムフレームは、インジケータ-ゼロが立つもの HUGEさんありがとうございました。それが私の望みでした。 Ivan Ivanov 2017.11.09 13:23 #3719 ijonhson: 皆さんこんにちは、自分では解けません。これにより、エラーの発見が容易になります。if ( OrderSelect(ticket_order,SELECT_BY_TICKET) ) if ( OrderModify(ticket_order,Price,SL,TP,0) ) {} しかし、OrderSelect() の前に、tiket_order=(correct_ticket)とする必要があると思うのです。 Artyom Trishkin 2017.11.09 14:02 #3720 ijonhson: すべてこんにちは、私は自分自身を理解することはできません、私は不注意かもしれませんがポルターガイストのいくつかの種類、戦略テスターで このような接続では、エラー不正なチケット(OrderModify())、およびn番目の順序ではなく、最初または第二に、私は非難するのか分からない、多分OrderModify()、またはOrderSelectチケットで参照渡し、何とかそこに変更されますか。 チケットでオーダーを選択し、何キロものコードを経て、それを修正しようとするのです。しかし、その時にはすでに終了している可能性もあります。 1...365366367368369370371372373374375376377378379...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
マキシム、良い一日!バリアントをありがとう、私のはほとんど同じですが、それはまた、動作しますが、Alekseu Fedotovは それを示唆し、私はそれを修正する方法のアイデアがあることを書いた?
再描画を気にしない場合(例えば、今のようにとにかく再計算する場合) -OnCalculate関数から、再計算したい場所(あなたの場合、前の時間のバー)を返します。
return rates_total-iBarShift(_Symbol,_Period,time[0]-TimeMinute(time[0])*60-TimeSeconds(time[0])-1 ); // これについて、「手探りで、確認しない」と書いて、アプローチの実証をしています。
使用するチャートのタイムフレームは、インジケータ-ゼロが立っているもの
新しいバーが表示されたときにバッファーをリセットする方法を教えてください。ただし、以前のデータは消去されずにチャートに表示されます。な ぜかバッファをゼロにリセット できず、新しいバーが表示さ れると、古い蓄積データの上に新しいデータが重なって 表示されます。私のコードのどこが間違っているのでしょうか?分かりやすい説明ありがとうございます。
新しいバーが 表示されると、端末は新しいNULL要素をバッファに追加します。3行目で ...... 6は正確にゼロに なります。その他の要素はすべて保持
ヒストグラムのバーは、新しいバーの 出現ですぐに伸び、その後も伸び続けるのに、次のバーが出現すると前のバーが伸びるのはなぜですか?
新しいバーの 出現直後のヒストグラムのバーは、前のバーの伸びを持ち、その後も伸び続け、次のバーの出現時には、前のバーの伸びを持つのはなぜでしょうか。
下は古い、上は新しい
使用するチャートのタイムフレームは、インジケータ-ゼロが立つもの
皆さんこんにちは、自分では解けません。
これにより、エラーの発見が容易になります。
しかし、OrderSelect() の前に、tiket_order=(correct_ticket)とする必要があると思うのです。すべてこんにちは、私は自分自身を理解することはできません、私は不注意かもしれませんがポルターガイストのいくつかの種類、戦略テスターで このような接続では、エラー不正なチケット(OrderModify())、およびn番目の順序ではなく、最初または第二に、私は非難するのか分からない、多分OrderModify()、またはOrderSelectチケットで参照渡し、何とかそこに変更されますか。