MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 222 1...215216217218219220221222223224225226227228229...1953 新しいコメント cripple 2017.06.02 11:21 #2211 よろしくお願いします。私はオフセット(iMA(NULL、PERIOD_M1、1、1、MODE_SMA、PRICE_OPEN、i)の ために、更新後のすべての時間、for()ループを理解することはできません。)インジケーターが再描画される!//+------------------------------------------------------------------+ //| help.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2005-2014, MetaQuotes Software Corp." #property link "http://www.mql4.com" #property strict #include <MovingAverages.mqh> //--- indicator settings #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 clrSilver #property indicator_color2 clrRed #property indicator_width1 2 //--- indicator parameters input int SignalSMA=8; // Signal SMA Period //--- indicator buffers double ExtBuffer[]; double ExtSignalBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit(void) { IndicatorDigits(Digits+1); //--- drawing settings SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexStyle(1,DRAW_LINE); //--- indicator buffers mapping SetIndexBuffer(0,ExtBuffer); SetIndexBuffer(1,ExtSignalBuffer); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i,limit; //--- last counted bar will be recounted limit=rates_total-prev_calculated; if(prev_calculated>0) limit++; //--- counted in the 1-st buffer for(i=0;i<limit;i++) ExtBuffer[i]=( iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,PRICE_HIGH,i) +iMA(NULL,PERIOD_M1,1,1,MODE_SMA,PRICE_OPEN,i) ); //--- signal line counted in the 2-nd buffer SimpleMAOnBuffer(rates_total,prev_calculated,0,SignalSMA,ExtBuffer,ExtSignalBuffer); //--- done return(rates_total); } //+------------------------------------------------------------------+ ありがとうございました。 ivan-baaton 2017.06.02 11:32 #2212 Alexey Viktorov:私見では、このやり方はまったく論理的ではありません。なぜ曜日を定義するのか?もし、「今日は○○件以上の注文を出さない」という条件であれば、日にちは関係ないのでしょうか? 今日オープンした注文をカウントして、それに対応する条件を指定する方が理にかなっているように思います。 受注開始日はございません。 知っている方は、やり方を書いてください) ある日、一日中、n個以上の注文が 開かれないようにする方法がわかりません。 Renat Akhtyamov 2017.06.02 14:05 #2213 cripple:よろしくお願いします。私はオフセット(iMA(NULL、PERIOD_M1、1、1、MODE_SMA、PRICE_OPEN、i)の ために、更新後のすべての時間、for()ループを理解することはできません。)インジケーターが再描画される!あらかじめご了承ください。MAはTFが異なるので、上位のタイムフレームをM1のTFに合わせる、つまり異なるティック数でMAを2回カウントする必要があります。この場合、古い期間の同じ値が、若い期間の異なる値に加算されることになります。i を通して見ると、例えば期間 D1 のローソク足が 10 本、M1 が 10 本出てきます。論理的に何かがおかしい...。もうひとつ、インジケーターがM1にセットされていれば、ほとんどの場合、ブライシングをやり直さずに動作する。 cripple 2017.06.02 14:10 #2214 Renat Akhtyamov:MAは異なるTFを持っています。あなたは、M1のTFに上位のタイムフレームを合わせるようにしなければなりません、つまり、異なるティック数でMAを2回カウントします。 iを通過することにより、あなたは今、例えば期間D1の10本のローソク足と10本のM1を取っています。論理的に何かがおかしい...。 そうですね、でも私の頭では、どうすればM1が正しくカウントされるのか、まだ理解できていません。 Renat Akhtyamov 2017.06.02 14:16 #2215 cripple: そうですね、でも私の頭では、どうすればM1が正しくカウントされるのか、まだ十分ではありません。また、M5の1バーは必ずしもM1の5キャンドルに対応しないため、より高いタイムフレームでM1を同期させる必要があります、それは4または1であるかもしれません。 Alexey Viktorov 2017.06.02 14:27 #2216 cripple: そうですね、でも私の頭では、どうすればM1を正しくカウントできるのか、まだ理解できていません。トライ int Bars( string symbol_name, // имя символа ENUM_TIMEFRAMES timeframe, // период datetime start_time, // с какой даты datetime stop_time // по какую дату );i番目の小節の時間を表示し、iの代わりに結果の小節番号を表示する。 rogovegor 2017.06.02 15:01 #2217 mt4ターミナルで、キーボードを使ってオープンペアをスクロールすることができるかどうか教えてください。 novikov433 2017.06.02 15:03 #2218 LRA:novikov433 様 !!!プログラミングを教えるか、無料のExpert Advisorを書くか、その両方か! そのかわり、損切り注文が損切りに変換 される方法を教えてくれ。簡単な例で結構です。妻に、早朝に市場でバケツ一杯のジャガイモを買い、10時までに(ファンダメンタル分析)価格が上がる→売る、という注文(オーダー)を出すのです。でも、10時半にトラック一杯のジャガイモが届くこともあるんですよ(ニュース)。そして、(ニュースで)瞬時に価格が下がり、それがその日の終わりまで、あるいは1週間ずっと続くのです。ストップロスを設定し、価格が10ルーブル下がったら、できるだけ早く売る(市場価格で)。損失を避けるために、どのように順序を変更するか。ご興味のある方は、メールにてご連絡ください。 問題は、マーケットが要求側に少し行ってから戻ったので、ブレークイーブンで取引を終了し、リバースでオープンする必要があることです。でも、実際にトレードしてみると、やっぱり手持ちぶさただなあというのが実感です。 cripple 2017.06.02 15:31 #2219 Alexey Viktorov:トライ i 番目の小節の時刻を取得し、i の代わりに結果の小節番号を格納する。 このようなことを考えたことはありますか?//+------------------------------------------------------------------+ //| help.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2005-2014, MetaQuotes Software Corp." #property link "http://www.mql4.com" #property description "Moving Averages Convergence/Divergence" #property strict #include <MovingAverages.mqh> //--- indicator settings #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 clrSilver #property indicator_color2 clrRed #property indicator_width1 2 //--- indicator parameters input int SignalSMA=8; // Signal SMA Period //--- indicator buffers double ExtBuffer[]; double ExtSignalBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit(void) { IndicatorDigits(Digits+1); //--- drawing settings SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexStyle(1,DRAW_LINE); //--- indicator buffers mapping SetIndexBuffer(0,ExtBuffer); SetIndexBuffer(1,ExtSignalBuffer); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i,limit; //--- last counted bar will be recounted limit=rates_total-prev_calculated; if(prev_calculated>0) limit++; //--- counted in the 1-st buffer for(i=0;i<limit;i++) { int bars=iBarShift(Symbol(),PERIOD_M1,iTime(Symbol(),PERIOD_CURRENT,i),false); ExtBuffer[i]=( iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,PRICE_HIGH,i) +iMA(NULL,PERIOD_M1,1,1,MODE_SMA,PRICE_OPEN,bars) ); Print(bars); } //--- signal line counted in the 2-nd buffer SimpleMAOnBuffer(rates_total,prev_calculated,0,SignalSMA,ExtBuffer,ExtSignalBuffer); //--- done return(rates_total); } //+------------------------------------------------------------------+ 削除済み 2017.06.02 17:15 #2220 ax00071: ご清聴ありがとうございました ))取引自体は数時間前に終了している。さて、22:00になったら、Expert Advisorは、すでに決済されている注文を決済するための注文を出し始めた・・・。 植物とは名乗らないほうがいい。このようなエラーを発見し、理解し、修正することができたなら、あなたはプログラマーのレベルに近づいているのです! 1...215216217218219220221222223224225226227228229...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
よろしくお願いします。私はオフセット(iMA(NULL、PERIOD_M1、1、1、MODE_SMA、PRICE_OPEN、i)の ために、更新後のすべての時間、for()ループを理解することはできません。)インジケーターが再描画される!
ありがとうございました。
私見では、このやり方はまったく論理的ではありません。なぜ曜日を定義するのか?もし、「今日は○○件以上の注文を出さない」という条件であれば、日にちは関係ないのでしょうか?
今日オープンした注文をカウントして、それに対応する条件を指定する方が理にかなっているように思います。
受注開始日はございません。知っている方は、やり方を書いてください)
ある日、一日中、n個以上の注文が 開かれないようにする方法がわかりません。
よろしくお願いします。私はオフセット(iMA(NULL、PERIOD_M1、1、1、MODE_SMA、PRICE_OPEN、i)の ために、更新後のすべての時間、for()ループを理解することはできません。)インジケーターが再描画される!
あらかじめご了承ください。
MAはTFが異なるので、上位のタイムフレームをM1のTFに合わせる、つまり異なるティック数でMAを2回カウントする必要があります。この場合、古い期間の同じ値が、若い期間の異なる値に加算されることになります。
i を通して見ると、例えば期間 D1 のローソク足が 10 本、M1 が 10 本出てきます。論理的に何かがおかしい...。
もうひとつ、インジケーターがM1にセットされていれば、ほとんどの場合、ブライシングをやり直さずに動作する。
MAは異なるTFを持っています。あなたは、M1のTFに上位のタイムフレームを合わせるようにしなければなりません、つまり、異なるティック数でMAを2回カウントします。
iを通過することにより、あなたは今、例えば期間D1の10本のローソク足と10本のM1を取っています。論理的に何かがおかしい...。
そうですね、でも私の頭では、どうすればM1が正しくカウントされるのか、まだ十分ではありません。
また、M5の1バーは必ずしもM1の5キャンドルに対応しないため、より高いタイムフレームでM1を同期させる必要があります、それは4または1であるかもしれません。
そうですね、でも私の頭では、どうすればM1を正しくカウントできるのか、まだ理解できていません。
トライ
i番目の小節の時間を表示し、iの代わりに結果の小節番号を表示する。
novikov433 様 !!!プログラミングを教えるか、無料のExpert Advisorを書くか、その両方か! そのかわり、損切り注文が損切りに変換 される方法を教えてくれ。簡単な例で結構です。妻に、早朝に市場でバケツ一杯のジャガイモを買い、10時までに(ファンダメンタル分析)価格が上がる→売る、という注文(オーダー)を出すのです。でも、10時半にトラック一杯のジャガイモが届くこともあるんですよ(ニュース)。そして、(ニュースで)瞬時に価格が下がり、それがその日の終わりまで、あるいは1週間ずっと続くのです。ストップロスを設定し、価格が10ルーブル下がったら、できるだけ早く売る(市場価格で)。損失を避けるために、どのように順序を変更するか。ご興味のある方は、メールにてご連絡ください。
トライ
i 番目の小節の時刻を取得し、i の代わりに結果の小節番号を格納する。
このようなことを考えたことはありますか?
ご清聴ありがとうございました ))取引自体は数時間前に終了している。さて、22:00になったら、Expert Advisorは、すでに決済されている注文を決済するための注文を出し始めた・・・。