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

 
MK07:

技術的な修正 - アドバイザーが行うように、トップパネルのSRCボタンを使ってコードを挿入して ください。もっと読みやすくなるはずです。

追伸:
コメント行を消すには、deinit()の中にComment(")を挿入してください。
 
granit77:
技術的な修正 - アドバイザーが行うように、トップパネルのSRCボタンを使ってコードを挿入してください。もっと読みやすくなるはずです。

追伸
Comment行を消すには、deinit()にComment(")を挿入します。
情報ありがとうございます。フォーラムに参加するのは初めてです。
 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
double ExtMapBuffer1[],ExtMapBuffer2[];
int init(){SetIndexStyle(0,DRAW_LINE);SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);SetIndexBuffer(1,ExtMapBuffer2);
IndicatorShortName("MACD_max-min");return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
int start(){int counted_bars=IndicatorCounted(),limit,win_idx;double top;
if(counted_bars>0)counted_bars--;limit=Bars-counted_bars;win_idx=WindowFind("MACD_max-min");
for(int i=0;i<limit;i++){ExtMapBuffer1[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
  ExtMapBuffer2[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i);}
  top=WindowPriceMax(win_idx);ObjectDelete("max");
  if(ObjectFind("max")!=win_idx){ObjectCreate("max",OBJ_HLINE,win_idx,Time[0],top);
  ObjectSet("max",OBJPROP_COLOR,Yellow);ObjectSet("max",OBJPROP_WIDTH,0);}
  Comment( "\n"," top = ",DoubleToStr(top,5));return(0);}
//+------------------------------------------------------------------+
 
https://docs.mql4.com/ru/common/Comment
voidComment(. ...)
この機能は、ユーザー定義のコメントをチャートの左上隅に印刷します。パラメータはどのようなものでもよい。パラメータ数は64個を超えることはできません。
Comment()に配列を渡すことはできません。配列は、要素ごとに印刷する必要があります。
double 型のデータは,小数点以下 4 桁で表示されます。.より高い精度で数値を出力したい場合は、DoubleToStr() を使用してください。
bool, datetime, color 型は数値として表示されます。
日時のデータを文字列として出力するには、TimeToStr() 関数を使用します。

出力を複数行に分割する場合は、改行文字「♪」または「♪」を使用することができます。
Alert()Print()も参照して ください。
 
価格が上向きの水平 線を越えた...という書き方を教えてください。
また、この線はどのように表現すればよいのでしょうか。
 
Roll:
サイエンスに感謝します。
 

こんにちは。

ここで、私が抱えている問題を説明します。

PERIOD_H1での作業中。

時間終了時の締めは、こうしています。

   for(j = OrdersTotal()-1; j >= 0; j--){ 
       if(OrderSelect(j, SELECT_BY_POS, MODE_TRADES))
          if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){
            OpenTime= OrderOpenTime();          
          if(OrderType() == OP_BUY){
            if(TimeCurrent()>Time[0]+3580){ 
             OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),0,Red);}
             }
           else 
          if(OrderType() == OP_SELL){
            if(TimeCurrent()>Time[0]+3580){
             OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),0,Blue);}
             }
           }
         }
時間足でポジションを建てるには、次のようにします。
   if(TimeCurrent()<Time[0]+3500 && HaveBuy==false && HaveSell==false)
     if(Ask <= EnBuy && IsFreeLevel==true){
          ticket = OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),0,0,forecast-5*MyPoint,"",MagicNumber,0,Blue);
         }
     if(Bid >= EnSel && IsFreeLevel==true){
          ticket = OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),0,0,forecast+5*MyPoint,"",MagicNumber,0,Red);
         }

しかし、テストでは次のようになります。

どこを間違えているのかがわからない。

すべての回でこうなるわけではありませんが、そういう瞬間もあります。

回答してくださる方、ありがとうございます :)

 
alsu:
そうじゃなくて、EAがどこに付いてるかで何が変わるんだよって話。正しく書かれていれば、どこに置いても違いはありません。モンゴル為替のチャートに置くだけですが、EURUSD 1分足で動作するように設定されていれば、そのように動作するようになります。しかも、プログラミングは難しくなく、数行変更するだけです。 。

分かりやすく説明していただき、ありがとうございました

ただ、テスターで1分足のバーをシミュレーションして、それぞれの1分足のバーのオープニングで修正するのは気になりますね。

Open[0]をiOpen(NULL,1,0)に変更し、1分足のバーの開きを確認する関数を追加してみます。

数分経過し、その間コードをいじり、M5でテスターで試し、この場合テスターは規定ではあるが1分足を開かず、恐れていた5分おきにしか修正しないことを確認した。全ティックモードでは、より頻繁に修正されるため、少し優れています。しかし、M1ではバーを開くときだけ、Open[0]とiOpen(NULL,1,0)の両方で同じように動作します、これはまだ感謝しています

今は、赤のOpenがなくても大丈夫なようなので、常に緑のiOpenを使うことにしています。緑の利益は、赤の損失よりも素敵です。(:))

 
mario065:

こんにちは。

ここで、私が抱えている問題を説明します。

PERIOD_H1での作業中。

時間終了時の締めは、こうしています。

時間帯の最初にポジションを開くには、次のようにします。
しかし、テストでは次のようになります。

どこを間違えているのかがわからない。

すべての回でこうなるわけではありませんが、そういう瞬間もあります。

ありがとう、反応してくれる人 :)


友人からヒントをもらいました。
TimeCurrent()の代わりに。

TimeSeconds(TimeCurrent())

そして、それが功を奏した。

 
russcand:

価格が上向きの水平線を越えた...という書き方を教えてください。また、この線はどのように表現すればよいのでしょうか。
1本目の指標値が水平線の 値より大きく、かつ、 2本目の指標値が水平線の値より小さい場合、指標線が水平線を上方に横切ったことになります。
水平線の記述は、定数、すなわちインジケータウィンドウの次元での値である。マウスカーソルを合わせて、この値を見てみましょう。