エラー、バグ、質問 - ページ 2457 1...245024512452245324542455245624572458245924602461246224632464...3185 新しいコメント fxsaber 2019.05.09 06:03 #24561 製品のアップグレード時に、前のバージョンのEX5を(リソース経由で)添付し、エラー発生時にロールバックできるようにすることを実践しているマーケット関係者はいるのでしょうか? Vladimir Pastushak 2019.05.09 08:44 #24562 fxsaber: 製品をアップグレードする際に、前のバージョンのEX5を(リソース経由で)入れ、エラー発生時にロールバックできるようにすることは、マーケットでどなたか実践されていますか?これは、リソースがなくてもできる... 問題は、新しいバージョンでは設定が異なる場合があること...。 他の設定を持ち出すことがすでに問題なのですが...。 fxsaber 2019.05.09 09:21 #24563 Vladimir Pastushak:これは、リソースがなくてもできる... 問題は、新しいバージョンでは設定が異なる場合があること...。 他の設定を持ち出すことがすでに問題なのですが...。特に問題はないと思います。 Zakhar Chumak 2019.05.09 11:29 #24564 稼働中のVPSにログを要求すると、「ターミナルログの取得に失敗しました」というエラーが表示される 何が問題なのか、誰にもわからない。同時に、VPS上のEAは 動作(取引の開始/終了)していますが、ログを読み込むことができません。 fxsaber 2019.05.09 11:39 #24565 fxsaber:特に問題はないと思います。今頃になって、前バージョンのEX5はプロテクト機構付きでないとダメなんだと気づきました。 そして、前バージョンのEX5のリソースを通じて、適切ではない保護なしで転送することができるようになります。 Uladzimir Izerski 2019.05.09 12:51 #24566 5でインジケーターを書いています。 チャート上の入力フィールド から平均の期間を更新させることができません。 4では、このデザインは動作します。 どうしたんですか?IniteのフィールドはOnChartEventで 更新されるが、期間は更新されない。どうにもこうにも変えられないのです。 簡単な動作例を添付します。 //+------------------------------------------------------------------+ //| Probe_2.mq5 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://mql5.com" #property description "The MA " #property version "1.00" #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 //--- plot MA1 #property indicator_label1 "MA 1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrDarkOrange #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- input parameters extern int PBB=10; // период МА //--- indicator buffers double BufferMA1[]; //--- global variables int period_ma1; int period_max; int handle_ma1; string sn,sPBB; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { sPBB=IntegerToString(PBB); if(ObjectFind(0,"P2edit")!=0) { ObjectCreate(0,"P2edit",OBJ_EDIT,0,0,0); ObjectSetInteger(0,"P2edit",OBJPROP_XDISTANCE,300); ObjectSetInteger(0,"P2edit",OBJPROP_YDISTANCE,1); ObjectSetInteger(0,"P2edit",OBJPROP_XSIZE,70); ObjectSetInteger(0,"P2edit",OBJPROP_YSIZE,40); ObjectSetInteger(0,"P2edit",OBJPROP_SELECTABLE,false); ObjectSetInteger(0,"P2edit",OBJPROP_BGCOLOR,clrBlack); ObjectSetString (0,"P2edit",OBJPROP_TEXT,sPBB); ObjectSetInteger(0,"P2edit",OBJPROP_FONTSIZE,16); ObjectSetInteger(0,"P2edit",OBJPROP_COLOR,clrGray); ObjectSetInteger(0,"P2edit",OBJPROP_ALIGN,ALIGN_CENTER); ObjectSetInteger(0,"P2edit",OBJPROP_READONLY,false); } //--- set global variables period_ma1=int(PBB<1 ? 1 : PBB); //--- indicator buffers mapping SetIndexBuffer(0,BufferMA1,INDICATOR_DATA); ArraySetAsSeries(BufferMA1,true); IndicatorSetInteger(INDICATOR_DIGITS,Digits()); //--- create handle ResetLastError(); Comment("Должна соответствовать зеленой, а равна= ",PBB); handle_ma1=iMA(NULL,PERIOD_CURRENT,period_ma1,0,1,PRICE_CLOSE); if(handle_ma1==INVALID_HANDLE) { Print("The iMA(",(string)period_ma1,") object was not created: Error ",GetLastError()); return INIT_FAILED; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //| | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id==CHARTEVENT_OBJECT_ENDEDIT) { string obj_name=sparam; if(!StringCompare(obj_name,"P2edit")) { string novPBB=NULL; if(ObjectGetString(0,obj_name,OBJPROP_TEXT,0,novPBB)) { if(StringCompare(novPBB,sPBB,false)) { PBB= (int)StringToInteger(novPBB); ObjectSetInteger(0,"P2edit",OBJPROP_BGCOLOR,clrBlack); ObjectSetInteger(0,"P2edit",OBJPROP_COLOR,clrLime); } } Print("B OnChartEvent PBB=",PBB); ChartSetSymbolPeriod(0,_Symbol,_Period); } } return; } //+------------------------------------------------------------------+ //| 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[]) { // Пробовал от сюда запускать. // sPBB=IntegerToString(PBB); // if(ObjectFind(0,"P2edit")!=0) // { // ObjectCreate(0,"P2edit",OBJ_EDIT,0,0,0); // ObjectSetInteger(0,"P2edit",OBJPROP_XDISTANCE,300); // ObjectSetInteger(0,"P2edit",OBJPROP_YDISTANCE,1); // ObjectSetInteger(0,"P2edit",OBJPROP_XSIZE,70); // ObjectSetInteger(0,"P2edit",OBJPROP_YSIZE,40); // ObjectSetInteger(0,"P2edit",OBJPROP_SELECTABLE,false); // ObjectSetInteger(0,"P2edit",OBJPROP_BGCOLOR,clrBlack); // ObjectSetString (0,"P2edit",OBJPROP_TEXT,sPBB); // ObjectSetInteger(0,"P2edit",OBJPROP_FONTSIZE,16); // ObjectSetInteger(0,"P2edit",OBJPROP_COLOR,clrGray); // ObjectSetInteger(0,"P2edit",OBJPROP_ALIGN,ALIGN_CENTER); // ObjectSetInteger(0,"P2edit",OBJPROP_READONLY,false); // } // // if(PBB==0) PBB=(int)StringToInteger(sPBB); // // if(PBB<5) period_ma1=5; else period_ma1=PBB; // if(PBB>300) period_ma1=300; else period_ma1=PBB; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ ArraySetAsSeries(close,true);//--- Установка массивов буферов как таймсерий //--- Проверка количества доступных баров if(rates_total<fmax(period_max,4)) return 0; //--- Проверка и расчёт количества просчитываемых баров int limit=rates_total-prev_calculated; if(limit>1) { limit=rates_total-2; ArrayInitialize(BufferMA1,EMPTY_VALUE); } //--- Подготовка данных int count=(limit>0 ? rates_total : 1),copied=0; copied=CopyBuffer(handle_ma1,0,0,count,BufferMA1); if(copied!=count) return 0; //Comment("ошибка = "); //--- возвращаемое значение prev_calculated для следующего вызова return(rates_total); } //+------------------------------------------------------------------+ //| deinit | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { int i; int obj_total=ObjectsTotal(0,0,-1); for(i=obj_total-1;i>=0;i--) { sn=ObjectName(0,i,0,-1); if(ObjectFind(0,sn)==0) { if (StringFind(sn,"P2edit",0)==0) ObjectDelete(0,sn); } } Comment(""); return; } Slava 2019.05.09 14:05 #24567 Zakhar Chumak:稼働中のVPSにログを要求すると、「ターミナルログの取得に失敗しました」というエラーが表示される 何が問題なのか、誰にもわからない。同時にVPS上のEAも 動作(取引の開始/終了)していますが、ログを読み込むことができません。tempフォルダのパスが長すぎるようです。 アーカイブされたログは、まずシステムのtempフォルダーにある一時ファイル(拡張子はtmp)に読み込まれます。一時ファイル名形成エラーが発生しました Vladimir Pastushak 2019.05.09 15:07 #24568 峠を越えたら、エージェントは寝て、残りの忙しいエージェントが仕事を終えるのを待つという理解で合っていますか? Uladzimir Izerski 2019.05.10 08:54 #24569 何? 私の質問#24566には 誰も答えてくれないのですか? 何が面白いか。このバリアントでOnCalculateは 動作します。しかし、このバリエーションはうまくいきません。 int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) Vladimir Pastushak 2019.05.10 09:58 #24570 Uladzimir Izerski:何? 私の質問#24566には 誰も答えてくれないのですか? 何が面白いか。このバリアントでOnCalculateは 動作します。しかし、このバリエーションはうまくいきません。 スケジュール/期間を変更すると、入力フィールドでどのような値を指定しても、PBBは10という値を取得します。 再初期化の瞬間は、あたかも初回実行のように行われる。 問題を解決する方法は2つあります。 1 - PBBの値をグローバル変数に格納し、そこから周期を取得する。 2 - OnChartEventが発生したら、MAインジケータを再初期化し、新しいハンドルを取得する... 1...245024512452245324542455245624572458245924602461246224632464...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
製品をアップグレードする際に、前のバージョンのEX5を(リソース経由で)入れ、エラー発生時にロールバックできるようにすることは、マーケットでどなたか実践されていますか?
これは、リソースがなくてもできる...
問題は、新しいバージョンでは設定が異なる場合があること...。
他の設定を持ち出すことがすでに問題なのですが...。
これは、リソースがなくてもできる...
問題は、新しいバージョンでは設定が異なる場合があること...。
他の設定を持ち出すことがすでに問題なのですが...。
特に問題はないと思います。
稼働中のVPSにログを要求すると、「ターミナルログの取得に失敗しました」というエラーが表示される
何が問題なのか、誰にもわからない。同時に、VPS上のEAは 動作(取引の開始/終了)していますが、ログを読み込むことができません。
特に問題はないと思います。
今頃になって、前バージョンのEX5はプロテクト機構付きでないとダメなんだと気づきました。
そして、前バージョンのEX5のリソースを通じて、適切ではない保護なしで転送することができるようになります。
5でインジケーターを書いています。
チャート上の入力フィールド から平均の期間を更新させることができません。 4では、このデザインは動作します。
どうしたんですか?IniteのフィールドはOnChartEventで 更新されるが、期間は更新されない。どうにもこうにも変えられないのです。
簡単な動作例を添付します。
稼働中のVPSにログを要求すると、「ターミナルログの取得に失敗しました」というエラーが表示される
何が問題なのか、誰にもわからない。同時にVPS上のEAも 動作(取引の開始/終了)していますが、ログを読み込むことができません。
tempフォルダのパスが長すぎるようです。
アーカイブされたログは、まずシステムのtempフォルダーにある一時ファイル(拡張子はtmp)に読み込まれます。一時ファイル名形成エラーが発生しました
峠を越えたら、エージェントは寝て、残りの忙しいエージェントが仕事を終えるのを待つという理解で合っていますか?
何?
私の質問#24566には 誰も答えてくれないのですか?
何が面白いか。このバリアントでOnCalculateは 動作します。しかし、このバリエーションはうまくいきません。
何?
私の質問#24566には 誰も答えてくれないのですか?
何が面白いか。このバリアントでOnCalculateは 動作します。しかし、このバリエーションはうまくいきません。
スケジュール/期間を変更すると、入力フィールドでどのような値を指定しても、PBBは10という値を取得します。
再初期化の瞬間は、あたかも初回実行のように行われる。
問題を解決する方法は2つあります。
1 - PBBの値をグローバル変数に格納し、そこから周期を取得する。
2 - OnChartEventが発生したら、MAインジケータを再初期化し、新しいハンドルを取得する...