MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 169

 

こんにちは。ファイルからデータを読み込んで、すぐに書き戻すことができない。ループやMathRand() を含むコードの断片をアンコメントすると、ファイルはそのままドロドロになります。しかし、コメントアウトされた行をそのままにしておくと(すでにファイル内が混乱している)、次にExpert Advisorを有効/無効にしたときに、ファイルにゼロが含まれることになります。読み書き可能なアレイは、double ROM1[128][128]とdouble ROM2[3][128]です。配列は読み込むだけで、コードの他の部分は変更されません。以下はコードの一部です。

int init()                                     
   {
   Print ("Сработала ф-ия init"); // Сообщение
   Handle=FileOpen("Neuro",FILE_BIN|FILE_READ|FILE_WRITE);// Открытие файла на чтение и запись   
   FileSeek(Handle, 0, SEEK_SET); //указатель на начало файла
   FileReadArray(Handle, ROM1);
   FileSeek(Handle, 131073, SEEK_SET); //указатель на конец первого массива
   FileReadArray(Handle, ROM2);

/*
   for(i=0; i<128; i++) //заполнение памяти первого слоя кашей
      {
      for(k=0; k<128; k++)
         {
         ROM1[i][k] = (MathRand()-16383)/3200;
         }
      }
   for(i=0; i<3; i++) //заполнение памяти второго слоя кашей
      {
      for(k=0; k<128; k++)
         {
         ROM1[i][k] = (MathRand()-16383)/3200;
         }
      }
*/         
   return(0);                                       
   }   
//--------------------------------------------------------------------
int deinit()                                   
   {
   FileSeek(Handle, 0, SEEK_SET);
   FileWriteArray(Handle, ROM1);
   FileSeek(Handle, 131073, SEEK_SET);
   FileWriteArray(Handle, ROM2);
   FileClose(Handle);
   return(0);                                     
   }

よろしくお願いします。ありがとうございます。
 
こんにちは、EAのコードにどのように書くか教えてください。
しんごうけんさく

例えば、こんな感じです。
13:00にマジック565のオープンで注文があります。
EAでは、注文を開くために、以下の条件があります。
565のマジックナンバーの注文を市場に出した場合、Expert Advisorでシグナルの検索を1つ先延ばしにするにはどうすればよいでしょうか。
14:00に開始する信号の探索。

現在、13:00にMagic 565のオーダーがオープンされている状況を確認しています。
で、フクロウが13:00:02にオーダーを開始します。

2つの同じ命令を出す。


ありがとうございます。

 
var58:
こんにちは、EAのコードにどのように書くか教えてください。
しんごうけんさく

例えば、こんな感じです。
13:00にマジック565のオープンで注文があります。
EAでは、注文を開くために、以下の条件があります。
565のマジックナンバーの注文を市場に出した場合、Expert Advisorでシグナルの検索を1つ先延ばしにするにはどうしたらいいでしょうか。
14:00に開始する信号の探索。

現在、13:00に565のマジックナンバーの注文がオープンされる状況を確認しています
で、フクロウが13:00:02にオーダーを開始します。

2つの同じ命令を出す。


ありがとうございます。

好きな時にシグナルを検索することができますが、時間によってポジションを開く必要があります。

マジック565でポジションをオープンして 現在の時刻を見る。現在時刻がマジック565でポジションを建てる時刻より指定した分数だけ長い場合、ポジションを建てることができます。

 
Artyom Trishkin:

シグナルはいつでも検索できますが、時間によってポジションを開くことができるようにしなければなりません。

マジック565でポジションを開くと現在の時刻が 表示されます。現在時刻がMagik 565のオープン時間より所定の分数だけ長い場合、ポジションをオープンすることができる。


ありがとうございました。コード上ではどのように見えるのでしょうか?
 
こんにちは。ファイルからデータを読み込んで、すぐに書き戻すことができない。ループやMathRand()を含むコードの断片をアンコメントすると、ファイルはそのままドロドロになります。しかし、コメントアウトされた行をそのままにしておくと(すでにファイル内がぐちゃぐちゃになっている)、次にExpert Advisorを有効/無効にしたときに、ファイルにゼロが含まれるようになってしまうのです。読み書き可能なアレイは、double ROM1[128][128]とdouble ROM2[3][128]です。配列は読み込むだけで、コードの他の部分は変更されません。以下は、ちょっとしたコードです。

ちょこっとだけこの関数は、2次元配列のdoubleを読み取ることはできませんが、書き出すことはできます。

要素ごとの読み出しのループを作りました。もしかしたら、誰かの役に立つかもしれない。

{
FileSeek(Handle, n,  SEEK_SET); //изменение позиции файлового курсора        
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}
 
var58:

ありがとうございました。コードではどのように見えるのでしょうか?

無料でコードを書くのではなく、自分で書こうと思ってもなかなか書けない人を助けているのです。

あなたのコードでできないことを教えてください。

 
Tamul:

ちょっと工夫してみました。2次元配列のdouble関数は、書き込みは問題ないのですが、読み込みをしたくありません。

ループ単位での読み取りを行いました。もしかしたら、誰かに必要とされるかもしれない。

{
FileSeek(Handle, n,  SEEK_SET); //изменение позиции файлового курсора        
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}

自分がやっていないからと言って、どうして人にそんな松葉杖を差し出さなければならないのでしょうか。

ファイルから2次元配列を読み込むには、そのために用意された2次元配列である必要があります。

そのコードサンプルの記憶が正しければ、書き込んだ後にファイルを 閉じるというのは見当たりませんでした。空のファイルが作成され、そこにデータが書き込まれるが、この満たされたファイルはメインメモリに保存され、ファイルデータはディスクからしか読み込めない。その結果、ファイルは書き込まれたように見えるが、物理的にはディスク上に存在しない...。ディスクに保存するためには、ファイルを閉じるか、強制的にディスクに保存 する必要があります。

 
Artyom Trishkin:

そして、これは自由なコード書きではなく、自分で書こうとしてうまく書けない人へのヘルプです。

あなたのコードでできないことを教えてください。


しゃい
 

こんにちは!mql4で簡単な(非常に簡単な)例を書いてください。私は全くの初心者です。

1) 任意の値になったら保留注文を 出す(例:価格が0.7777になったら保留注文を出す)

2) 成行注文が任意の値になったら閉じる(例:価格が0.6666なら、注文を閉じる)。

固有の注文番号を使って注文を閉じることもできない。取引ロボットの現状を変えてみたいのですが、何もわかりません。

このサイトのチュートリアルを読んでみましたが、効果はなく(私がそんなに馬鹿なのかもしれませんが)、初歩的な例題はなぜかインターネットにありません。ありがとうございました。

 
maxon777:

こんにちは!mql4で簡単な(非常に簡単な)例を書いてください。私は全くの初心者です。

1) 任意の値になったら保留注文を 出す(例:価格が0.7777になったら保留注文を出す)

2) 成行注文が任意の値になったら閉じる(例:価格が0.6666なら、注文を閉じる)。

固有の注文番号を使って注文を閉じることもできない。取引ロボットの現状を変えてみたいのですが、何もわかりません。

このサイトのチュートリアルを読んでみましたが、効果はなく(私がそんなに馬鹿なのかもしれませんが)、初歩的な例題はなぜかインターネットにありません。ありがとうございました。


CodeBaseで Pending Order Expert Advisorを探し、どのようにコードが書かれているかを見てみるとよいでしょう。