エラー、バグ、質問 - ページ 1718

 
メタエディターでユニコード保存を無効にする方法を教えてください。ANSIが必要です。
 
fxsaber:
メタエディターでユニコード保存を無効にする方法を教えてください。ANSIが必要です。

なぜ、このようなニーズがあるのか。

エディターは、テキストに128-255の範囲の文字が含まれている場合、自動的にユニコードでファイルを保存します。

 
Alexey Da:

なぜ、このようなニーズがあるのか。

エディタは、テキストが128-255の範囲の文字である場合、自動的にユニコードでファイルを保存します。

すべてのファイルが2倍の大きさになりました。メモ帳にANSIで保存しているのですが、大丈夫でしょうか?その後、メタ・エディタで開いて保存すると、またユニコードになります。

この添付 ファイルを開いて保存してみてください。

 
同じ文字列のインジケータが複数ある
#property indicator_separate_window

#property indicator_plots 1
#property indicator_buffers 1

#property  indicator_type1 DRAW_LINE
#property  indicator_style1 STYLE_SOLID
#property  indicator_color1 clrRed

mqhに入れ、「保存」にリンクさせることにしました。プロパティはソースのmq5-fileにしか設定できないためです。

なぜそのような制限があるのですか?

 

プライベート メッセージに添付ファイルができないのですが。

ex4が4.9Mb以上。

 
fxsaber:
同じ文字列を含むインジケータが複数ある

mqhに入れ、「保存」にリンクさせることにした。プロパティはソースのmq5-fileにのみ設定可能です。

なぜそのような制限があるのですか?

実は、これらのプロパティは、MQLインジケーター・プロジェクトの プロパティなのです。

現在、MQLプログラムのプロジェクトファイルは、*.mq5(4)ソースファイルです。
また、ユーザーは、これらのプロパティを含む可能性のあるサードパーティ製の*.mqhファイルを使用することができます。
 
Alexey Da:

なぜ、このようなニーズがあるのか。

エディターは、テキストに128-255の範囲の文字が含まれている場合、自動的にユニコードでファイルを保存します。

これは新しいことです。半角文字のエンコードをシステム設定から取ってはどうでしょうか。これが今までのデフォルトでした。

ここでも、必要な人が2バイト形式を有効にできるよう、オプションを設けることができる。

 
Ilyas:
また、ユーザーはサードパーティ製の*.mqhファイルを使用することができ、そのファイルにはこれらのプロパティが含まれている可能性があります。

mqhに設定することは可能ですが、存在しないものとして読み込まれることはありません。

 
Karputov Vladimir:
例題があれば、問題点、例題、OSや端末のデータなど、すべてを1つの記事にまとめる予定です。

完了今はWin764bitですが、問題は同じです。リアルタイムではすべてその通りなのですが、テスターのビジュアライゼーションでは、線の左側の点がしっかりと固定され、右側の点が動きます。

datetime prevtime=0,
         time_last_bar[1]={0};

bool    New_Bar=false;      // Флаг нового бара
                 
const long            chart_ID=0;        // ID графика 
const string          nname="TrendLine";  // имя линии 
const int             sub_window=0;      // номер подокна 
datetime              time1=0;           // время первой точки 
double                price1=0;          // цена первой точки 
datetime              time2=0;           // время второй точки 
double                price2=0;          // цена второй точки 
datetime prevbar=0;
double cclose[];
datetime ttime[];

//--------------------------------------------------------------------
void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   New_Bar=false;                               // Нового бара нет
   
   CopyTime(Symbol(),Period(),0,1,time_last_bar);
   
   if(time_last_bar[0] != prevtime)                        // Сравниваем время
     {
      prevtime = time_last_bar[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }


//=============================================================================================================
int OnInit()
  {
    
   CopyTime(Symbol(),Period(),0,1,time_last_bar);
   prevtime = time_last_bar[0];
ArraySetAsSeries(cclose,true);
ArraySetAsSeries(ttime,true);  
ArrayResize(cclose,5);
ArrayResize(ttime,5);   
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {  
   ObjectsDeleteAll(0," ",-1,-1);
   Print("------------Работа эксперта завершена!------------"); 
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
 Fun_New_Bar();                               // Обращение к ф-ии
 if (New_Bar==false)                          // Если бар не новый..
    return;                                   // ..то уходим
 Print("новый бар !");  

ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];

Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);

//--- создадим трендовую линию по заданным координатам 
   if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); 
      return; 
     } 


} 
 //--------------------------------------------------------------------------------


トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

バグ、バグ、質問

アレクセイ・クラフチェンコ 2016.10.04 09:09

こんにちは。

わからないことがあるんです。

2つ前のバーの終値の間に通常のトレンドラインを描きます(新しいバー ごとに)。

ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];

Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);

//--- создадим трендовую линию по заданным координатам 
   if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); 
      return; 
     } 

リアルタイムですべて正常に動作します。しかし、テスターでの可視化モードでは、線の左点がリファレンスの開始点にくっついていて、全く動きません。何が問題なのでしょうか?

Z.U.さん MT4ではこの問題はないようです。


トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

バグ、バグ、質問

アレクセイ・クラフチェンコ さん 2016.10.04 09:57

例に問題がありますね。そこでは、ボルトシェル自体がいくつかのファイルを受け取ります。夜、家に帰ったらもっと簡単なものを作るよ。

WinXP SP3。ビルド1434

LE 0 14:55:39.873 ターミナル MetaTrader 5 build 1434 開始 (MetaQuotes Software Corp.社)
DI 0 14:55:39.889 ターミナル Microsoft Windows XP (X86 ベース PC), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:00

LJ 0 14:55:39.889 ターミナル C:\Program FilesMetaTrader 5

ZY. いずれにせよ、上にあげたような操作をokrozme、それ以外は何もしていません。新しいバーが 検出されると、すべてが消去され、新しい線が描かれます。しかし、私はコンパイルするための完全な例を行います。


ж

 
Alexey Kravchenko:

完了今はWin764bitですが、問題は同じです。リアルタイムではすべてその通りなのですが、テスターのビジュアライゼーションでは、線の左側の点がしっかりと固定され、右側の点が動きます。


謝辞を述べる。テスターには悪意がある。