初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 2

 
Vladimir Karputov:

ご指摘の通り、コンパイラは悪態をつきます。

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

動作しない。

 
Nickolay72:

ご指摘の通り、コンパイラは悪態をつきます。

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

うまくいかないんです。

以下は、あなたのコードです。

if(! Ticket>0)Print(GetLastError()) --- チケットは整数値、すなわち "2354865 " である。 ここで質問:整数は(!2354865 )に ならない のでしょうか? 整数は「> 0」より大きいか「< 0」より小さいかのどちらかです。このbool値は、false/true ( ! )である。

さらに、この構文:if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true) --- チケットごとにパラメータを列挙しており、具体的なチケットを表示した場合、そのマジックナンバーやシンボルを確認する意味がない、つまり明らかに不要です:if((OrderMagicNumber()==magic) &&(OrderSymbol()==Symbol()))

最後に、このような構成は、数学的なタスクの順序を明示的に指定するために、より良いブラケットです:NormalizeDoubleBid+( TakeProfit*ポイント、Digits
 
Vitaly Muzichenko:


そして最後に、このような構文は、行列のタスクの順序を明示的に指定するために括弧で囲むとよいでしょう:NormalizeDouble(Bid+( TakeProfit*Point),Digits);

いいえ、ブラケットなしでも可能です。しかし、合計が掛け算になる場合は、括弧が必要です。

 
poman:

は、期間D1で0バーのオープン時間の値を取ることができ、+秒数を追加します。

1行目の現在時刻と取得時刻を比較する条件において

保留中の注文では、注文の有効期限である秒数を設定することができます。

Data_1=iTime(Symbol(),PERIOD_D1,0)+86400;  //время жизни ордера


ありがとうございました!)助かりました)
 

コードのヘルプ、アドバイザーは、すべてのバーを通過し、どのようにそれは最後の200のバーを通過するようにするには!?感謝

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
 

プロバイダシグナル

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

初心者の方からの質問

プロバイダ_シグナル さん 2016.11.09 18:38

金曜日の夜にEAですべての注文をクローズするには?週末に残さないように。

関数DayOfWeek()が見つかりました。

小切手を書くことができる

if (DayOfWeek() == 5)
{
//
}

しかし、時間に対してどのような小切手を書けばいいのだろう。例えば、22:00だったらどうでしょう?


 
Vladimir Karputov:

プロバイダシグナル

でも、その時のチェックはどんな風に書けばいいんだろう。例えば、22:00は何でしょう?
extern int St_Hour   = 22;

if (Hour()==St_Hour)
 
Aibek Mugiynov:

コードのヘルプ、アドバイザーは、すべてのバーを通過し、どのようにそれは最後の200のバーを通過するようにするには!?感謝

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
for (i=1; i<200; i++)
 

こんにちは、助けてください。

3本のバーでバッファが満たされない場合、バッファを満たします。


     int BarCount=3;
    BER=true;
   for(int il=1;il<=BarCount;il++)
     {
      if(BufferPointUp[il]!= EMPTY_VALUE){BER=false;break;}
     }
     if(BER) BufferPointUp[i]=high[i];

すべてのバーで、無差別に塗りつぶす。

しかし、こうすればすべて正しく表示される。

if(BufferPointUp[i+1]== EMPTY_VALUE&&BufferPointUp[i+2]== EMPTY_VALUE&&BufferPointUp[i+3]== EMPTY_VALUE)BufferPointUp[i]=high[i];

このチェックを ループで行うには?

 
mila.com:
extern int St_Hour   = 22;

if (Hour()==St_Hour)
ありがとうございました。
理由: