[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 616

 

こんにちは。

インジケータで計算した4つの変数("tick_up", "tick_dn", "pip_up", "pip_dn")をテキストファイルに書き込んでいるのですが、どうすればいいでしょうか?刻みで計算されるため

スクリプトを作成する可能性が見えず、インジケータを使用して履歴上で実行しています。

以下は、収録のコードです。

.............
     
 handle = FileOpen("TickHistory.txt", FILE_CSV|FILE_WRITE, '\t');
   FileWrite(handle, "tick_up", "tick_dn", "pip_up", "pip_dn");
   FileWrite(handle, MA1[i],MA2[i],ExtBuffer1[i], ExtBuffer0[i]);  //---Также пробовал организовать вывод НЕ через массив, а через переменную типа double. 
            
   }      
      FileClose(handle);       
return(0);
}

TickHistory.txtという ファイルが作成され、2行だけ書き 込まれます。

tick_up  tick_dn  pip_up    pip_dn   //--- Имя переменных
 0.35     0.65     0.28      0.71   //--- Рассчитываемые данные

なぜ、1行しかデータが書き込まれないのですか?

 
DOCTORS:


私の要望に対して、正しくないことをお詫びします.要するに、異なる時間軸の高値での計算が異なるということですが、それは理解できますので、私は以下のようにしました(異なる時間軸でのトレードの戦略上必要なことです)。



画像を表示する

インジケーターを作り直す必要がある。無駄な計算が多いように思う。

 
Fox_RM:

こんにちは。

インジケータで計算した4つの変数("tick_up", "tick_dn", "pip_up", "pip_dn")をテキストファイルに書き込んでいるのですが、どうすればいいでしょうか?刻みで計算されるため

スクリプトを作成する可能性が見えず、インジケータを使用して履歴上で実行しています。

以下は、収録のコードです。

TickHistory.txtという ファイルが作成され、2行だけ書き 込まれます。

なぜ、1行しかデータが書き込まれないのですか?


こうして2行で書き出すと

 
Fox_RM:

こんにちは。

インジケータで計算した4つの変数("tick_up", "tick_dn", "pip_up", "pip_dn")をテキストファイルに書き込んでいるのですが、どうすればいいでしょうか?刻みで計算されるため

スクリプトを作成する可能性が見えず、インジケータを使用して履歴上で実行しています。

以下は、収録のコードです。

TickHistory.txtという ファイルが作成され、2行だけ書き 込まれます。

なぜ、1行しかデータが書き込まれないのですか?

なぜなら、FILE_READを使わずにFILE_WRITEモードでファイルを開くたびに完全に上書きされてしまうからです。https://docs.mql4.com/ru/files/FileOpen
 
alsu:
なぜなら、FILE_READを使わずにFILE_WRITEモードでファイルを開くたびに完全に上書きされてしまうからです。https://docs.mql4.com/ru/files/FileOpen
つまり、ループの前に一度オープンしてヘッダを書き込み、ループの中で何度もデータを書き込み、ループの後にクローズするのが正しい方法です。
 

そしてもう一つ、iMAonArrayや類似の関数との連携について質問です。

Volumeからスリップを計算しています。

//----Объявление массивов
double ExtBuffer0[],ExtBuffer1[],MA1[],MA2[],ExtVol[]; //--- Связанные через SetIndexBuffer массивы
double Mass1[], Mass2[], Mass3[];               //--- Массивы просто объявленные на глобальном уровне

   SetIndexBuffer(0,MA1);
   SetIndexBuffer(1,MA2);
   SetIndexBuffer(2,ExtBuffer0);
   SetIndexBuffer(3,ExtBuffer1);
   SetIndexBuffer(3,ExtVol);
  
IndicatorBuffers(5);


//----Вычисление среднего Вариант №1 (через связанные массивы) 
ExtVol[i]=Volume[i]; 
MA1[i]=iMAOnArray(ExtVol[i],0,8,0,0,0); //--- Или MA1[i]=iMAOnArray(Volume[i],0,8,0,0,0);

//----Вычисление среднего Вариант №2
Mass1[i]=Volume[i]; 
Mass2[i]=iMAOnArray(Mass1[i],0,8,0,0,0); //--- Или Mass1[i]=iMAOnArray(Volume[i],0,8,0,0,0);

SetIndexBufferで リンクされた 配列でのみスライド計算が行われるのはなぜですか

普通の配列でやると、何も出てこない。

 
alsu:
すなわち、ループの前に一度オープンしてヘッダを書き込み、ループの中で何度もデータを書き込み、ループの後にクローズする、これが正しい。
了解!)質問クリア!)ありがとうございました。
 

皆さん!バーサイクルをより分かりやすく表現するには?



皆さん!差し支えなければ、アドバイスをお願いします。

3本または4本の連続したバーでインジケータを比較したい場合、どのようにコードを書けば正しいでしょうか?

いろいろなバリエーションを見ていると、混乱してきます。

ごめんなさい、もし私が誰かを不安にさせたなら...。

 

目利きの皆様へ改造とトレリングについて質問です。



失礼しました!

どうか、わかってくれる人に、優しくしてあげてください。注文の変更の適切な記述方法。

だけでなく、トレーリングストップや5桁の利益も?

標準のオプションを試しましたが、なぜか動作が不安定です。

誰かがリンクを投げてくれるかも?

あらかじめご了承ください。

 
EAで他の指標に重ね合わせた指標(例えばRSIにMA)を宣言する方法を教えてください。