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

 

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

バグ、バグ、質問

fxsaber さん 2017.04.01 10:20

昔々、文字 列に演算子[]が追加されたことがあった。
string Str = "AB C";
Print(CharToString(Str[1])); // B


開発者側で、配列の=演算子を追加することは可能でしょうか?

int a[], b[];
a = b; // ArrayCopy(a, b);


ポインタがないので、このような演算子があると、言語がより柔軟になり、非常に便利な状況が見つかります。

複雑な構造でも同じ
MqlTradeRequest a, b;
a = b;
 
fxsaber:
複雑な構造でも同じ
Copy(a, b)という関数がありますが、見た目も動作もあまりよくありませんが、オプションとして...。
 
Комбинатор:
関数Copy(a, b)を書いてもいいのですが、見た目も動作もあまりよくありませんが、オプションとして......。
この機能はユニバーサル(テンプレート経由)にはなりません。
 
fxsaber:
このような機能は、(テンプレートを介して)普遍的なものではないでしょう。
各構造体のオーバーロードを作ることができます。最終的には、もちろん、テンプレートではなく、多くのスペースを取ることになりますが、何の問題もなく普遍的に使用することができます
 
Комбинатор:
構造体ごとにオーバーロードをすればいい。最終的には、もちろんテンプレートではなく、多くのスペースを取ることになりますが、問題なく普遍的に使用することができます

でも、そんなのわかってるじゃないですか。ユニバーサルは、通常の複雑な構造だけでなく、カスタムの複雑な構造でも機能する場合です。

ZZY 今のところ、そのような機能を書くことは不可能です。

MqlTradeRequest Func();

それは言葉の限定が良くないのでしょう。

 
配列へのポインタがないことを補うために、関数で配列を 返す機能を導入することは可能でしょうか?
int[] Func()
{
  int a[] = {1, 2, 3};

  return(a);
}

Print(Func()[1]); // 2
 

この話題でいいのかどうか。

MT5とMT4でのプロファイルの不具合

プロファイルを保存するとき、例えば各ペアの6つのチャートを別々に保存すると、プロファイルを開くときに、必要なものとは別のものを開いてしまうことがよくあるのです。そして、必要なものが全く開かないのです。

MT4のブローカー端末に問題があると思い(もともとそこでプロファイルを設定しようとした)、MetaquotesからオリジナルのMT5をダウンロードしましたが、同じ問題です。


どこを掘るの?

 
Oleg:

この話題でいいのかどうか。

МТ5、МТ4でのプロファイルの不具合について

プロファイルを保存するとき、例えば各ペアの6つのチャートを別々に保存すると、プロファイルを開くときに、必要なものとは別のものを開いてしまうことがよくあるのです。そして、必要なものが全く開かないのです。

MT4のブローカー端末に問題があると思い(もともとそこでプロファイルを設定しようとした)、MetaquotesからオリジナルのMT5をダウンロードしましたが、同じ問題です。

どこを掘るの?


まずは一貫して正確な描写をすること。MT5 - データディレクトリの場所を構築します(再読み込み後、「ログ」タブから上位3行を取得します)。

  1. so-and-soのチャートを開いた(スクリーンショット)。テンプレートに保存されます。テンプレートを添付しました。
  2. は、他のチャートを表示した(スクリーンショット)。新しいテンプレートに保存します。テンプレートが添付されていた。
  3. 手順 1、2 を繰り返す。
  4. テンプレート№1適用- 得られるもの。
  5. そして、テンプレート2を適用すると、こうなります。
こんな感じ。
 
Oleg:

この話題でいいのかどうか。

MT5とMT4でのプロファイルの不具合

プロファイルを保存するとき、例えば各ペアの6つのチャートを別々に保存すると、プロファイルを開くときに、必要なものとは別のものを開いてしまうことがよくあるのです。そして、必要なものが全く開かないのです。

MT4のブローカー端末に問題があると思い(もともとそこでプロファイルを設定しようとした)、MetaquotesからオリジナルのMT5をダウンロードしましたが、同じ問題です。


何が問題なのか、おおよそ理解できました。新しいフィールドを作成し、別の名前で保存すると、プロファイルが単に上書きされるだけです。別の名前で保存されているはずですが。


どこを掘るの?

これは昔からそうでした。プロファイルを変更すると、開いているプロファイルも変更されるため、別の名前で保存すると、同じプロファイルが2つ保存されます。この問題を解決するには、一連の手順を実行する必要があります。

1.現在のプロファイルを保存します。

2.新しいプロファイルを設定し、別の名前で保存します。

このように、2つの異なるプロファイルが保存されます...

 
Vladimir Karputov:


まずは、一貫性のある正確な描写から始めましょう。MT5 - データディレクトリの場所を構築します(再読み込み後、ログタブの上位3行を取得します)。

  1. というように、たくさんのチャートを開いています(スクリーンショット)。テンプレートに保存されます。テンプレートが添付されていた。
  2. 他のチャートを開いたところ(スクリーンショット)。新しいテンプレートに保存します。テンプレートが添付されていた。
  3. 手順 1、2 を繰り返す。
  4. テンプレート№1適用- 得られるもの。
  5. そして、テンプレート2を適用すると、こうなります。
だいたいそうです。

迅速な対応ありがとうございました最後に保存したテンプレートは、その名前で保存されるだけでなく、自動的にデフォルトになることがわかったようです。

すべてを正しく保存するために、私はデフォルトを開き、必要なチャートを入れて、自分の名前で保存しています。