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

 

クラス関数で宣言された静的 変数は、そのクラスのすべてのインスタンスに対してパススルーされるのですか?

なぜか、それぞれのインスタンスで違うことを期待していました。

代替案はクラスレベルの変数だけなのか、それとも他のトリッキーな方法があるのか?

 

こんにちは!私は、ファイルを保存するためのパスを指定する必要があります。この問題を解決してください )

//------------------------------------------------------------------
#property copyright "www.forex-tsd.com"
#property link      "www.forex-tsd.com"
//------------------------------------------------------------------
#property indicator_chart_window

//
//
//
//
//

extern string FileName   = "Ticks.csv";
extern bool   SaveVolume = true; 
int fileHandle;

MqlBookInfo book[];

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//

int  OnInit()                   
{ 
   MarketBookAdd(_Symbol); 
      fileHandle = FileOpen(Symbol()+" - "+FileName,FILE_WRITE|FILE_SHARE_READ|FILE_ANSI|FILE_CSV); 
      return(0); 
}
void OnDeinit(const int reason) 
{
   MarketBookRelease(_Symbol);
   FileClose(fileHandle);
}

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//

int OnCalculate(const int rates_total, const int prev_calculated, const datetime &Time[],
                const double &Open[], const double &High[], const double &Low[], const double &Close[],
                const long &TickVolume[], const long &Volume[], const int &Spread[])
{                
   if (fileHandle <0)
   {
      static bool alerted = false;
         if (!alerted)
         {
            Alert("File : "+Symbol()+" - "+FileName+" could not be opened"); alerted = true;
         }
         return(0);
   }         

   //
   //
   //
   //
   //
   
   bool bget = MarketBookGet(_Symbol,book);
   int bidVolume = 0;
   int askVolume = 0;

      if (bget)
      {
         int    size = ArraySize(book);
         string info = "\n";
            for (int i=0; i<size; i++)
               {
                  if (book[i].type==BOOK_TYPE_SELL) askVolume += (int)book[i].volume;
                  if (book[i].type==BOOK_TYPE_BUY)  bidVolume += (int)book[i].volume;
               }                  
      }            
      
   if (FileSize(fileHandle) == 0)
         FileWriteString(fileHandle,"date and time,bid,ask,bid volume,ask volume\n");
         if (SaveVolume)
               FileWriteString(fileHandle,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)+","+DoubleToString(bidVolume,0)+","+DoubleToString(askVolume,0)+"\n");
         else  FileWriteString(fileHandle,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)+"\n");
         FileFlush(fileHandle);
   return(0);
}
 

ニューラルネット

ファイルオープン

ファイルは、クライアント端末のフォルダ内のサブフォルダMQL5Files (テストの場合はagent_folderMQL5Files)で開かれます。

フラグに FILE_COMMON を指定した場合、全クライアント端末の共通フォルダー ⇄TerminalCommonFiles でファイルを開きます

--

を、"シンボリックリンク "を介してのみ別の場所に移動させることができます。

      fileHandle = FileOpen(Symbol()+" - "+FileName,FILE_WRITE|FILE_SHARE_READ|FILE_ANSI|FILE_CSV);    // FILE_COMMON 



 
NeuralNetwork:
ありがとうございました。しかし、別のドライブやフォルダを指定して、保存するパスを設定したいのです。できないんです.

https://www.mql5.com/ru/docs/files

3行

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы". общая папка всех установленных на компьютере терминалов  – обычно расположена в каталоге C:\Documents and Settings\All Users\Application...
 
Fast235:

ニューラルネット

ファイルオープン

ファイルは、クライアント端末のフォルダ内のサブフォルダMQL5Files (テストの場合はagent_folderMQL5Files)で開かれます。

フラグに FILE_COMMON を指定した場合、全クライアント端末の共通フォルダー ⇄TerminalCommonFiles でファイルを開きます

--

を、"シンボリックリンク "を介してのみ別の場所に移動させることができます。



ありがとうございました。
 
Roman Shiredchenko:


管理者とモデレーターは、曲解されたロボットの 問題をどのように解決するのでしょうか?

 

Expert Advisorのコードで週足のRSI値を取得することが可能かどうか教えてください。 しかし、月曜日からではなく、例えば水曜日から始まる週の値を計算します。

今のところ、計算方法はひとつしかありません。もっとシンプルな解決策や、すぐにできる解決策はないのでしょうか?

 
Roman Shiredchenko:

大声を出す、怒鳴る、罵る、自分のコードを動かそうとしない、モデレーターや管理者を責める、モデレーターや管理者を侮辱する......。

総じて言えば、「全部入り」です。一週間、頭を冷やして、自分の間違いを理解する時間を与えよう。考え抜かれた!?

 
Valeriy Yastremskiy:

チケットの会計処理をすること。

注文を開く際に、チケットを記憶させる必要があります。

ありがとうございました。
 
Valeriy Yastremskiy:

フラグは、注文の種類の 数を制御するか、チケットがある場合は成行注文の終了時間を制御し、0に等しくない場合は、注文が終了し、注文開始フラグは偽となります。

ありがとうございます!もうゲットしました!みんなに勧められて)))))😃😃😃😃😃😃😃💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕