[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 221

 

最初のエントリーを「翻訳」してみます。

if(((OrderSymbol() == Symbol() && OnlyThisSymbol) || !OnlyThisSymbol))

"式1.または2.の少なくとも一方が真であれば、..."
1.注文商品がチャート商品と同じで、外部変数OnlyThisSymbolの値がtrueであること。
2.外部変数OnlyThisSymbolの値がfalseに等しい。

さて、このエントリーの意味ですが。
異なるフィルターを持つポジションによってクローズされる注文の列挙があります。このレコードは、楽器別のフィルターです。外部変数onlyThisSymbolの値を設定すると、チャートシンボルによる注文のみを決済するか、任意のシンボルによる注文を決済するかを選択することができます。

 
alsu:

そうではありません。ポイントは、Experts変数がすでにint型であるため、値を代入する前に型変換を行う必要がある、つまり、コンパイラが、Experts変数に値を代入する前に型変換を行う必要があるということです。

* double型の値(プログラム上では名前はなく、単にコンパイラが知っているメインメモリやCPUのレジスタのアドレスに書き込まれます)を箱から出してみました。

* 上記の変数の値に必要なすべての変更を加え、Experts変数に新しい値(int型!)を書き込みました。

* この値(int!型)を変数New_Expertsに代入しました。両者は同じ型なので、あるメモリ位置から別のメモリ位置へ値をコピーすればよいのです。


追伸:自分の行いをここまで細かく把握している人がいるのは素晴らしいことだと思います。実際、冗談抜きで。連絡を取り合うこと。


ごきげんよう...。最後のメッセージと最後のメッセージの処理に困っています。特に(前回の回答でのメッセージ)「では、ボックスから値を取り出すとdouble型に なりますが、その結果をint型の変数に書き込む命令を出すと、コンパイラは自動的にその値を新しいボックスに入れるために必要なすべての動作を行います」そして前回の回答でのメッセージ「ポイントは、Experts変数がすでにint型であることです...」。GV-variableボックスに「入れる」瞬間にdouble型に変換したのでは?

回答ありがとうございました。

 

友人たちよ、私に助言してくれないか?MQL4では、テスターの初期条件だけでなく、プログラムでAccount Balanceの 値を設定することは可能ですか?

なぜ必要なのか、質問を明確にするために説明します。Expert Advisorで最適化の 際にAccount Balanceのサイズを変数として変更させたい。

 

こんにちは。

(H-L)/2に基づいてチャートにSlとTpを表示するインジケータを作成しようとしていますが、うまくいきません - それはちょうどバーの終値で描画します。

基本はATRという指標でとらえた。

//+------------------------------------------------------------------+
//|                                                          Tp/Sl.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_color4 Green
//---- input parameters
extern int PeriodMM=25;
//---- buffers
double SlBuffer[];
double TpBuffer[];
double SlBuffer2[];
double TpBuffer2[];
double TempBuffer[];
double TempBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 1 additional buffer used for counting.
   IndicatorBuffers(4);
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,SlBuffer);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,TpBuffer);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,SlBuffer2);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,TpBuffer2);
   SetIndexBuffer(4,TempBuffer);
   SetIndexBuffer(5,TempBuffer2);
//----
   SetIndexDrawBegin(0,PeriodMM);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
//----
   if(Bars<=PeriodMM) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=PeriodMM;i++)
      SlBuffer[Bars-i]=0.0;
      TpBuffer[Bars-i]=0.0;
      SlBuffer2[Bars-i]=0.0;
      TpBuffer2[Bars-i]=0.0;
//----
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      double high=High[i];
      double low =Low[i];
      double close = Close[i];
      TempBuffer[i]=(high-low)/2;
      TempBuffer2[i]=(high-low)/2*2.5;
      i--;
     }
//----
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   for(i=0; i<limit; i++)
      SlBuffer[i]=Close[i]+iMAOnArray(TempBuffer,Bars,PeriodMM,0,MODE_SMA,i);
      TpBuffer[i]=Close[i]+iMAOnArray(TempBuffer2,Bars,PeriodMM,0,MODE_SMA,i);
      SlBuffer2[i]=Close[i]-iMAOnArray(TempBuffer,Bars,PeriodMM,0,MODE_SMA,i);
      TpBuffer2[i]=Close[i]-iMAOnArray(TempBuffer2,Bars,PeriodMM,0,MODE_SMA,i);
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
同志たちよ、なぜCSVファイルが作成されないのか理解できない、以前はすべてうまくいっていたのに。
//+------------------------------------------------------------------+
//|                                                          TP1.mq4 |
//|                                                      S.I.Shlikov |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "S.I.Shlikov"
#property link      ""
int init()  
  {
   int h=FileOpen("H"+(Period()/60)+".csv",FILE_CSV|FILE_WRITE|FILE_READ,";");
    if(h<1)
      {
      Print("Файл не найден : ", GetLastError());
      return(false);
      }
   FileSeek(h, 0, SEEK_END);
   FileWrite(h,"Date","EURUSD","GBPUSD","NZDUSD","USDJPY","EURJPY","GBPJPY","USDCHF","EURCHF","GBPCHF");
   FileClose(h);        
  }
int start()
  {
   int h=FileOpen("H"+(Period()/60)+".csv",FILE_CSV|FILE_WRITE|FILE_READ,";");
    if(h<1)
      {
      Print("Файл не найден : ", GetLastError());
      return(false);
      }
   string Wtime=TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES);
   FileSeek(h, 0, SEEK_END);
   FileWrite(h,Wtime,DoubleToStr(iClose("EURUSD",Period(),0),MarketInfo("EURUSD",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPUSD",Period(),0),MarketInfo("GBPUSD",MODE_DIGITS)),
                     DoubleToStr(iClose("NZDUSD",Period(),0),MarketInfo("NZDUSD",MODE_DIGITS)),
                     
                     DoubleToStr(iClose("USDJPY",Period(),0),MarketInfo("USDJPY",MODE_DIGITS)),
                     DoubleToStr(iClose("EURJPY",Period(),0),MarketInfo("EURJPY",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPJPY",Period(),0),MarketInfo("GBPJPY",MODE_DIGITS)),
                     
                     DoubleToStr(iClose("USDCHF",Period(),0),MarketInfo("USDCHF",MODE_DIGITS)),
                     DoubleToStr(iClose("EURCHF",Period(),0),MarketInfo("EURCHF",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPCHF",Period(),0),MarketInfo("GBPCHF",MODE_DIGITS))
                     );
   FileClose(h);   
   return(0);
  }
 
orb:
同志たちよ、なぜCSVファイルが作成されないのか理解できない、以前はすべてうまくいっていたのに。

エラー番号は何番ですか?
 
sergeev:

エラー番号は何ですか?
エラー番号なし...ただファイルが作成されない、ALPARI tester filesを探してる。
 
orb:
エラー番号はない ファイルが作成されないだけだ ALPARI tester files を探している

じゃあ、もう1つの方を見てください。
 
sergeev:

まあ、他を当たってください。
もうやったよ。
 
orb:
はすでに見ています。

おめでとうございます。