どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 535

 
Leo59:
テーブル(*.csv)のデータを3次元の静的配列に展開する方法を教えてください。表の1列目には配列の1次元目のインデックスが格納されています。 2列目には配列の2次元目のインデックスが格納されています。 3列目以降には配列の3次元目の値そのものが格納されています。



次に何を書いたかは忘れてください。グローバル変数 arr[][][3]で適当な型の配列を宣言し、2次元目を自分で定義します。

void AAA()
   {
    int       Handle;                                          // Файловый описатель
    string    File_Name = "AAA.csv";                           // Имя открываемого файла

    string    str_1 = "";                                      //  1 Номер индекса по первому измерению
    string    str_2 = "";                                      //  2 Номер индекса по второму измерению
    string    str_3 = "";                                      //  3 Значение
    string    str_4 = "";                                      //  4 Значение
    string    str_5 = "";                                      //  5 Значение

    Handle=FileOpen(File_Name, FILE_READ, ";");                // Открытие файла
    
    while(FileIsEnding(Handle)==false)                         // До тех пор, пока файловый...
        {                                                      // ...указатель не в конце файла
         // Чтение данных из строки до файлового разделителя
         str_1 = FileReadString(Handle);                       //  1 Номер индекса по первому измерению
         str_2 = FileReadString(Handle);                       //  2 Номер индекса по второму измерению
         str_3 = FileReadString(Handle);                       //  3 Значение
         str_4 = FileReadString(Handle);                       //  4 Значение
         str_5 = FileReadString(Handle);                       //  5 Значение
         
// А здесь заполнение массива
arr[str_1][str_2][0] = str_3;
arr[str_1][str_2][1] = str_3;
arr[str_1][str_2][2] = str_4;

         if(FileIsEnding(Handle)==true)                        // Файловый указатель в конце файла
              break;                                           // Выход из цикла чтения

         ????????????????????????????????????????????????????
        }
    FileClose(Handle);                                         // Закрываем файл
    return;                                                    // Выход из функции
   }

まあ、こんなもんでしょう。そして、文字列インデックスを整数に変換する必要があるでしょう。

 
AlexeyVik:

次に何を書いたかは忘れてください。グローバル変数arr[][][3]で適当な型の配列を宣言し、2次元目を自分で定義します。

まあ、こんなもんでしょう。また、文字列のインデックスを整数に変換する必要があるでしょう。


ありがとうございました!!!!脳が沸騰すると、人は「盲目」になり、単純で当たり前のことが見えなくなる。一番面白いのは、「3コペイカのように」という単純な解答が分かっているのに、残念ながら目の前が真っ白になることです。
本当にありがとうございました !!!!
 
artmedia70:
くだらないアドバイスは必要ない。このコマンドは、チャートからすべてのオブジェクトを完全に削除します。

納得いかない!

という質問がありました。

OBJ_ARROW_RIGHT_PRICEなどのオブジェクトをすべて 削除するには?

解決策

ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE); //удалить все объекты типа "Правая ценовая метка" в главном окне графика

どこがどうバカな解決策なのか?

 
isn-88:

私はあなたに同意しない!

という質問がありました。

解決策

そして、なぜその判断が愚かなのか。

ALLオブジェクトを削除するという事実によって。EA/インジケーターに属さないものでも。もし、ある人が長い間、チャート上に自分のコードをマークアップしていたらどうでしょうか?そして、このコードをサードパーティのインジケータで実行したのですね。この良いコードの作者について、どのように、そして何を言うのだろうか。
 
artmedia70:
この良いコードの作者について、どのように、そして何を語っているのだろうか。


人は優しい。彼らは思ったことを何でも口にする。
 
Vinin:

人は優しい。思ったことをそのまま口にする。
ああ、ヴィティヤ...最近の人は意地悪だなぁ...。悲しいことです。
 
isn-88:

私はあなたに同意しない!

という質問がありました。

解決策

そして、なぜその解決策が愚かなものなのか。

実際には、ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) というコマンドからすべてが始まりました。

で、別のバリエーションでObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE) を試してみました。

拝啓、ヘルプをお読みください :)

Alpha-Forexでは上記のコマンドを使ったインデックスが正しく動作するのに、Saxo Bankではオブジェクトが削除されなくなったのはなぜでしょうか。

その後、スクリプトの実験を始めたら、すべてのターミナルでオブジェクトが削除されなくなりました。

 

皆さん、こんにちは。

そんなテスターの異変が観測される。

152、153、158、159の注文を決済した後、利益が正しくありません(テスターの計算が誤っているかのようです)。表のように数ヶ月間、注文が "ぶら下がった "状態になっています。その上、ドローダウンは表には正しく表示されるのですが、なぜかチャートには表示されないのです。

それは何でしょう?


EURUSD (ユーロ vs 米ドル)

15分(M15) 2012.01.01 23:00 - 2014.03.07 22:59 (2012.01.01 - 2014.03.08)

















1000.00



スプレッド

現在 (12)

1418.73

利益合計

2045.28

全損

-626.55

3.26

期待されるペイオフ

2.41



419.34

最大ドローダウン

834.91 (58.98%)

相対的ドローダウン

58.98% (834.91)


















テスト

時間

タイプ

ご注文

ボリューム

価格

S / L

T / P

利益

バランス

372

2012.04.30 11:00

買う

151

0.01

1.32193

0.00000

1.32472


373

2012.05.01 04:45

ティーピー

151

0.01

1.3247234

0.00000

1.32472

2.75

1402.41

374

2012.05.01 15:00

買う

152

0.01

1.32262

0.00000

1.32713


375

2012.05.02 07:45

ティーピー

142

0.01

1.31949

0.00000

1.31949

-4.40

1398.00

376

2012.05.02 07:45

ティーピー

143

0.01

1.31949

0.00000

1.31949

0.95

1398.96

377

2012.05.02 07:45

ティーピー

149

0.02

1.31949

0.00000

1.31949

12.49

1411.44

378

2012.05.02 08:45

買う

153

0.01

1.31711

0.00000

1.32237


379

2012.05.02 08:45

モディファイ

152

0.01

1.32262

0.00000

1.32237


380

2012.05.02 15:15

捌く

154

0.01

1.31483

0.00000

1.31352


381

2012.05.03 07:00

ティーピー

154

0.01

1.3135174

0.00000

1.31352

1.18

1412.63

382

2012.05.03 08:45

捌く

155

0.01

1.31454

0.00000

1.31425


383

2012.05.03 09:00

ティーピー

155

0.01

1.3142483

0.00000

1.31425

0.29

1412.92

384

2012.05.03 13:45

捌く

156

0.01

1.31671

0.00000

1.31256


385

2012.05.04 10:45

ティーピー

156

0.01

1.3125581

0.00000

1.31256

4.11

1417.02

386

2012.05.04 14:15

捌く

157

0.01

1.31527

0.00000

1.31293


387

2012.05.04 14:45

ティーピー

157

0.01

1.3129331

0.00000

1.31293

2.34

1419.36

388

2012.05.04 16:15

買う

158

0.02

1.30997

0.00000

1.31742


389

2012.05.04 16:15

モディファイ

152

0.01

1.32262

0.00000

1.31742


390

2012.05.04 16:15

モディファイ

153

0.01

1.31711

0.00000

1.31742


391

2012.05.06 23:15

買う

159

0.04

1.29845

0.00000

1.30918


392

2012.05.06 23:15

モディファイ

152

0.01

1.32262

0.00000

1.30918


393

2012.05.06 23:15

モディファイ

153

0.01

1.31711

0.00000

1.30918


394

2012.05.06 23:15

モディファイ

158

0.02

1.30997

0.00000

1.30918


395

2012.09.14 10:45

ティーピー

152

0.01

1.30918

0.00000

1.30918

-18.67

1400.70

396

2012.09.14 10:45

ティーピー

153

0.01

1.30918

0.00000

1.30918

-13.12

1387.58

397

2012.09.14 10:45

ティーピー

158

0.02

1.30918

0.00000

1.30918

-11.65

1375.93

398

2012.09.14 10:45

ティーピー

159

0.04

1.30918

0.00000

1.30918

22.77

1398.70

 
VoDyaMon:

実際には、ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) というコマンドから全てが始まりました。

で、別のバリエーションであるObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE) を試してみました。

拝啓、ヘルプをお読みください :)

Alpha-Forexでは上記のコマンドを使ったインデックスが正しく機能するのに、Saxo Bankではオブジェクトが削除されなくなるのはなぜでしょうか?

その後、スクリプトの実験を始めたら、すべての端末でオブジェクトが削除されなくなりました。

1つ目はメインチャートウィンドウで、2つ目はすべてで見ています。結論 - 1) ウィンドウインデックスを使用して、関数が削除するオブジェクトを見つけるために通過するオブジェクトの数を削減します。2) 名前で削除する場合(名前の一部、通常mqlプログラムはオブジェクトに個人的な接頭辞を付けるので)、最後の(作成時間で最も古い)オブジェクトから検索ループを使用します。

確かにオブジェクトの削除には問題がありますが、オブジェクトの数が多く、0からObjectTotal()-1になった場合、削除されないオブジェクトがあります。開発者に質問、バッファメモリの割り当てが足りないのでは?

void DeleteObjects(int chartID, string prefix_obj_name) {
   string obj_nm="";
   int obj=ObjectsTotal();
 //  for(int k=0; k<obj; k++){  // неправильный вариант
   for(int k=obj-1; k>=0; k--){
      obj_nm = ObjectName(k);
      if(StringFind(obj_nm,prefix_obj_name)>=0) 
      { 
         ResetLastError();
         if(!ObjectDelete(chartID,obj_nm))
         {
            Print(__FUNCTION__,
            ": не удалось удалить объект ",obj_nm," Код ошибки = ",GetLastError());
         }
      }
   }
}
// prefix_obj_name = "Obj_MQLname_";   Имена объектов создаваемых программой "Obj_MQLname_Close_"+DoubleToStr(Close[0],Digits), "Obj_MQLname_Open_"+DoubleToStr(Open[0],Digits)   и т.д. 
 
Win8はMT4、MT5と互換性があるかどうか教えてください。macを持っていて、どのOSのPCを買えばいいのか悩んでいるので質問します。ある人は、8上でMT 4が動いているスクリーンショットまで見せてくれました。しかし、「完全な互換性はない」と主張する同志もいるので、はっきりさせないと......。ありがとうございます。