mql5言語の特徴、微妙なニュアンスとテクニック - ページ 129

 
fxsaber:

MEには、ALT+Vの組み合わせで、システムクリップボードの以前の値を見ることができます。ブラウザから何かをコピーして、MEがバックグラウンドで作業していたとしても、MEはそれを見て記憶しています。

大雑把に言うと、MEはあなたがコンピュータで行う多くのことを見ているのです。例えば、バッファ経由でアカウントのパスワードを貼り付けると、MEの履歴に入る。

このメガバッファにたくさんコピーするので、このバッファをクリアするためにMEを再起動しなければなりませんが、MEを起動してもバッファから現在のデータを拾ってしまうので、イライラします。下部にバッファクリアのボタンを追加し、ポジションに番号を振って、ペーストするときに内容ではなくポジション番号で移動することを提案しました

 
Vitaly Muzichenko:

うわー、暗号通貨のパスワードをコピーしちゃった。それが私にとってどれだけ不利なことか。

例えば、外部からパソコンにアクセスさせる場合(TeamViewerなど)、事前にすべてのMEからログアウトし、バッファの掃除(そこにあるゴミをコピーする)をしておくとよいでしょう。

 
fxsaber:

MEには、ALT+Vの組み合わせで、システムクリップボードの以前の値を見ることができます。ブラウザから何かをコピーして、MEがバックグラウンドで作業していたとしても、MEはそれを見て記憶しています。

大雑把に言うと、MEはあなたがコンピュータで行う多くのことを見ているのです。

ありがとうございます。面白いですね。なお、保存されるのはMEにコピーされたものだけでなく、すべてのアプリケーションのものが保存されます。具体的には、どのような深さまで保存されているかを確認する必要があり、今確認したところ、3つのコピーされたテキスト、2つはMEから、1つはこのフォーラムへの投稿のテキストから見たものです。

ps; フォーラムのテキストから2つも


 
そして念のため、何も検索されないか、交換されないかを確認します。metaeditor.iniでは、次のようになります。
FindWhatX=text
ReplaceWithX=text
 
fxsaber:

MEには、ALT+Vの組み合わせで、システムクリップボードの以前の値を見ることができます。ブラウザから何かをコピーして、MEがバックグラウンドで作業していたとしても、MEはそれを見て記憶しています。

大雑把に言うと、MEはあなたがコンピュータで行う多くのことを見ているのです。例えば、他のリソースからアカウントや個人アカウントのパスワードをバッファ経由で貼り付けると、それは現在のMEセッションの履歴に入ります。

これは面白い機能ですね。バッファがファイルではなく、メモリに保存されるのは良いことです。

 

ここも微妙なところです。

コンパイラは、同じ名前の関数が異なる入力パラメータを持つ場合、たとえそれがクラスに属していなくても、文句を言わない。

void OnStart()
{
 f1("28-70 ОГО");
 f1(1.01);
}

void f1(string s)
{
 Print(__FUNCSIG__, " ", s);
}

void f1(double s)
{
 Print(__FUNCSIG__, " ", s);
}

ランタイム結果

2019.03.10 10:34:45.566 !00 (EURUSD,H4) void f1(string) 28-70 ОГО
2019.03.10 10:34:45.566 !00 (EURUSD,H4) void f1(double) 1.01
 

マルチバッファはエディタのスピードアップに最適で、安全です。

ディスクには何も書き込まず、メモリにのみデータを保持します。

 
Alexey Viktorov:

ここも微妙なところです。

コンパイラは、同じ名前の関数が異なる入力パラメータを持つ場合、たとえそれがクラスに属していなくても、文句を言わない。

ランタイム結果

これは正常な機能のオーバーロード です。すべて標準装備です。

 
Artyom Trishkin:

正常な機能の過負荷 です。すべて標準装備です。

なぜか、オーバーロードはクラスでしか使えないと思っていました。自分だけではないと思いたい。もしかしたら、誰かの役に立つかもしれません。))))

 
オプティマイザーキャッシュは、以下の方法で無効にすることができます。
// Способ выключить кеш оптимизатора
sinput bool inCache = true; // Выключить кеш оптимизатора

input int Range = 0; // 0..10

void OnTesterInit( void )
{  
  if (inCache)
  {
    MathSrand((int)TimeLocal());
    
    ParameterSetRange("inCache", false, MathRand(), 0, 0, 0);    
  }
}

void OnTesterDeinit( void ) {}

void OnTesterPass( void )
{
  static int i = 0;
  
  Print(i++); // Признак того, что кеш выключен.
}

double OnTester( void )
{
  if (MQLInfoInteger(MQL_OPTIMIZATION))
  {
    uchar Data[];

    FrameAdd(NULL, 0, 0, Data);
  }

  return(0);
}


もちろん、開発者がOptimizationCacheOff() を与えれば、より良い解決策になるでしょう。

入力パラメータboolは実際にはlongであることに注意してください。つまり、bool inCache = 1bool inCache = 2 は、どちらも真であるが、異なる入力パラメータである。

理由: