MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 393 1...386387388389390391392393394395396397398399400...1953 新しいコメント Konstantin Erin 2017.12.14 14:26 #3921 YarTrade: VolC - ファイルをそう呼んでいました。ファイル名は必要ないのですか?すると、こんな感じになります。 string file_name="VolC_"+Symbol()+(string)Period(); int file_handle=FileOpen(file_name,FILE_WRITE|FILE_TXT); FileWrite(file_handle,(double)V5); // V5 - это что? FileClose(file_handle); YarTrade 2017.12.14 15:13 #3922 STARIJ:すると、こうなる。V5はある種の計算結果です。V5を削除し、代わりに配列を置き、それをファイルに書き込むようにしたい。ファイルは作成されますが、インジケータデータ配列ではなく、1つの値のみが書き込まれます。何が足りないのか?チャート上に正しくプロットされたインジケータがあります。その値をファイルに書き 込んで、後で読めるようにしたい。しかし、書かれているのは1つの数字だけです。何が問題なのか、教えてください。 YarTrade 2017.12.14 15:39 #3923 STARIJ:すると、こうなる。FileWriteArrayで やったのですが、ファイルが空になってしまい、配列が書き込めません :(どうすればいいか、わかりますか?もちろん、そうでしょう。何が問題なのか、教えてください。 Konstantin Erin 2017.12.14 15:55 #3924 YarTrade: FileWriteArrayでやったのですが、ファイルが空になってしまい、そこに配列が書き込めません :(どうすればいいか、わかりますか?もちろん、そうでしょう。何が問題なのか、教えてください。それは次のようなものです。 int V5=555; string file_name="VolC_"+Symbol()+(string)Period(); int file_handle=FileOpen(file_name,FILE_WRITE|FILE_TXT); FileWrite(file_handle,V5); FileClose(file_handle);アレイの種類は?コードを挿入して、欲張らないで! そして、ここに配列が書いてあるのは、どうやら文字配列だけの ようです。 string V5[5]={"Жили","были","дед","и","баба"}; string file_name="VolC_"+Symbol()+(string)Period(); int file_handle=FileOpen(file_name,FILE_WRITE|FILE_TXT); FileWriteArray(file_handle,V5); FileClose(file_handle);そして、ループ内の配列doubleは次のように書きます。 double V5[5]={3.333,7.7777777,1.1,2.22,9.999999999}; string file_name="VolC_"+Symbol()+(string)Period(); int file_handle=FileOpen(file_name,FILE_WRITE|FILE_TXT); for(int n=0; n<5; n++)FileWrite(file_handle,V5[n]); FileClose(file_handle); YarTrade 2017.12.14 16:40 #3925 STARIJ:それは次のようなものです。アレイの種類は?コードを挿入して、欲張らないように! そして、この配列は、明らかに文字配列だけを書いています。そして、以下は、ループの中で配列のダブルを記述しているところです。なんて欲張りなんでしょう。:)#property copyright "ZyZy" #property link "https://www.mql5.com/ru/users/alexeyvik/news" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 1 // #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrYellow #property indicator_style1 STYLE_SOLID #property indicator_width1 1 #property indicator_separate_window //--- input parameters input int Aver=15; datetime Время=0; // Время прошлого бара double Bid1; long V1; // объем для текущего тика вверх long V2; // накопленный объем для всех тиков вверх текущего бара long V3; // накопленный объем для всех тиков вниз для текущего бара long V4; // объем текущего тика вниз long V5; //--- indicator buffers double Buf_1[]; // буфер для значений идикатора double Counter[]; // буфер для расчетов //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping IndicatorBuffers(2); SetIndexBuffer(0,Buf_1,INDICATOR_DATA); // создаю буфер для значений индикатора SetIndexBuffer(1,Counter,INDICATOR_CALCULATIONS); SetIndexEmptyValue(0,0.0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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 limit = prev_calculated > 0 ? rates_total-prev_calculated : rates_total-1; //for(int i = limit; i >= 0; i--) // { // Counter[i] = close[i]; // Indicator[i] = iMAOnArray(Counter, 0, 5, 0, 0, i); // } if(prev_calculated==0) { ArrayInitialize(Counter,0.0); ArrayInitialize(Buf_1,0.0); } datetime Вр=Time[0]; // Время текущего бара if(Вр>Время) // Если новый бар { Время=Вр; // Запомнить Counter[0]=0; // и обнулить последний элемент буфера V2 = 0; V4 = 0; } if(Bid>=Bid1) { if(Bid>Bid1) { V1 = iVolume(NULL, 0, 0); V2 = V1 + V2; } else { V1 = 0; V2 = V1 + V2; } } else { V3 = iVolume(NULL, 0, 0); V4 = V3 + V4; } V5=V2-V4; Bid1=Bid; Counter[0]=(double)V5; Buf_1[0]=iMAOnArray(Counter,0,Aver,0,MODE_SMA,0); Comment("Counter ",Counter[0],"\n" ,"Buf_1 ",Buf_1[0]); string file_name="VolC_"+Symbol()+(string)Period(); int file_handle=FileOpen(file_name,FILE_WRITE|FILE_TXT); FileWriteArray(file_handle,Counter, 0, WHOLE_ARRAY); FileClose(file_handle); return(rates_total); } //+------------------------------------------------------------------+ Konstantin Erin 2017.12.14 17:05 #3926 YarTrade: どんな欲があるのでしょうか?:)なぜ、インジケーターから印刷するのですか?すべてが画面に表示される、それがインジケーターです。テーブルが必要なときは、iCustom()でスクリプトを実行します。 Dimitry-1983 2017.12.14 19:02 #3927 こんにちは、ターミナルで注文の価格をチェックすることになっているコードで悩んでいます。チケットと照らし合わせてみることにしました。チケットを配列に入れ、チェックを開始しました。All is good, it returns TRUE.私は、1つを削除すると、FALSEを返すと思います。しかし、そうではありません(( 全部削除しても、スクリプトは0ではなく1を返します。何がいけなかったのか?int start() { while(!IsStopped()) { int ordsel = 0; double ticord[3] = {8895969,8901032,8901033}; for(ordsel=0; ordsel<=2;ordsel++) { Sleep(5000); Alert(OrderSelect(ticord[ordsel],SELECT_BY_TICKET,MODE_TRADES)); } if(!IsExpertEnabled()) break; } return; } Ptichka12 2017.12.14 20:09 #3928 専門家の皆さん、こんにちは。初心者を助けてください。Expert Advisorにインジケータを 入れようとしています!(頭を悩ませています・・・。)エラー:'limit' - 型のない宣言。この行では、リミット = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period())) です。 Alekseu Fedotov 2017.12.14 20:34 #3929 Dimitry-1983:こんにちは、ターミナルで注文価格をチェックすることになっているコードで悩んでいます。チケットと照らし合わせてみることにしました。チケットを配列に入れ、チェックを開始しました。All is good, it returns TRUE.私は、1つを削除すると、FALSEを返すと思います。しかし、そうではありません(( 全部削除しても、スクリプトは0ではなく1を返します。何がいけなかったのか?チケットで選択(OrderSelect(...))した場合、パラメータ3は無視されることですMODE_TRADESというわけで、どのリスト(closed, open)から注文を選択 したかを知るには、そのclose timeを確認する必要があります。0- 開いていて保留中、>0 閉じている Alekseu Fedotov 2017.12.14 20:42 #3930 Ptichka12:専門家の皆さん、こんにちは。初心者を助けてください。Expert Advisorにインジケータを入れようとしています!(頭を悩ませています・・・。)エラー:'limit' - 型のない宣言。この行では:limit = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period()));これはなかなか面白いやり方ですね。エラー時に以下を試してみてください。int limit = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period())); 1...386387388389390391392393394395396397398399400...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
すると、こんな感じになります。
すると、こうなる。
V5はある種の計算結果です。V5を削除し、代わりに配列を置き、それをファイルに書き込むようにしたい。ファイルは作成されますが、インジケータデータ配列ではなく、1つの値のみが書き込まれます。何が足りないのか?チャート上に正しくプロットされたインジケータがあります。その値をファイルに書き 込んで、後で読めるようにしたい。しかし、書かれているのは1つの数字だけです。何が問題なのか、教えてください。
すると、こうなる。
FileWriteArrayで やったのですが、ファイルが空になってしまい、配列が書き込めません :(どうすればいいか、わかりますか?もちろん、そうでしょう。何が問題なのか、教えてください。
それは次のようなものです。
アレイの種類は?コードを挿入して、欲張らないで! そして、ここに配列が書いてあるのは、どうやら文字配列だけの ようです。
そして、ループ内の配列doubleは次のように書きます。
それは次のようなものです。
アレイの種類は?コードを挿入して、欲張らないように! そして、この配列は、明らかに文字配列だけを書いています。
そして、以下は、ループの中で配列のダブルを記述しているところです。
なんて欲張りなんでしょう。:)
なぜ、インジケーターから印刷するのですか?すべてが画面に表示される、それがインジケーターです。テーブルが必要なときは、iCustom()でスクリプトを実行します。
こんにちは、ターミナルで注文の価格をチェックすることになっているコードで悩んでいます。チケットと照らし合わせてみることにしました。チケットを配列に入れ、チェックを開始しました。
All is good, it returns TRUE.私は、1つを削除すると、FALSEを返すと思います。しかし、そうではありません(( 全部削除しても、スクリプトは0ではなく1を返します。何がいけなかったのか?
専門家の皆さん、こんにちは。初心者を助けてください。Expert Advisorにインジケータを 入れようとしています!(頭を悩ませています・・・。)エラー:'limit' - 型のない宣言。
この行では、リミット = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period())) です。
こんにちは、ターミナルで注文価格をチェックすることになっているコードで悩んでいます。チケットと照らし合わせてみることにしました。チケットを配列に入れ、チェックを開始しました。
All is good, it returns TRUE.私は、1つを削除すると、FALSEを返すと思います。しかし、そうではありません(( 全部削除しても、スクリプトは0ではなく1を返します。何がいけなかったのか?
チケットで選択(OrderSelect(...))した場合、パラメータ3は無視されることですMODE_TRADES
というわけで、どのリスト(closed, open)から注文を選択 したかを知るには、そのclose timeを確認する必要があります。
0- 開いていて保留中、>0 閉じている
専門家の皆さん、こんにちは。初心者を助けてください。Expert Advisorにインジケータを入れようとしています!(頭を悩ませています・・・。)エラー:'limit' - 型のない宣言。
この行では:limit = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period()));
これはなかなか面白いやり方ですね。
エラー時に以下を試してみてください。