エラー、バグ、質問 - ページ 1921

 

コンパイルエラー

template<typename T1, typename T2>
void f( T2 t )
{
        Print( typename( T1 ), ":", typename( T2 ), ":", t );
}
void OnStart()
{
        char ch = 5;
        f<int>( ch ); //(1) //error: 'f' - wrong template parameters count
}

レコードを編集する

         f<int,char>( ch ); //(2)
は冗長な情報を含んでおり、さらにchがcharでない場合は曖昧になります。また,マクロでは,ch型に関する情報は一般に利用できない(コンテキストに依存).
 
A100:

コンパイル時のエラー

プロでも可能なのでしょうか?

 
Комбинатор:

プラスで許されるのか?

C++は両方のバージョンをコンパイルしますが、(1)の方がより正しく、直感的に理解できるようです。(2)では、型も考慮しなければならないので、不便であり、単純化する代わりに、過剰に複雑になってしまう。これは、<>が複数のtypename
 

アラートが消えない、いろいろ試したが、全部読んだが、μlサイトにはアラートが出ない、端末にしか出ない...。


 
Vladimir Pastushak:

アラートが消えない、いろいろ試した、いろいろ読んだ、μlのサイトにはアラートがない、端末にしかない...。

これは当初からそうでした。

ここのスレッドで、どのファイルを削除すれば既読になるのかが判明したものがありました。しかし、その後も「お化け」は現れる。

 
こんにちは。デモの金の相場が どんどん消えていくのはなぜか、教えてください。
 

.log files %AppData%MetaQuotes³³...\MQL5³³Logs³³YYMMDD.log are not updated promptly.

アップデートは、端末を再起動した後、または表示メニューを選択した後のみ行われます。再起動やプレビューをクリックしない場合、対応するファイルは空になります。

以前はすべて動作しており(MetaEditor で開いた YYYYMMDD.log ファイルでさえ、Experts タブで行を表示した後、数秒で更新されていた)、明白ではない余分なアクションを実行する必要はありませんでした。

 

おやすみなさい!私のExpert AdvisorにはRSIとSTOがありますが、新しいローソク足で 売買シグナルをオープンさせることができず、現在のローソク足ではできません。

は、このようなコードです。

void OnTick(){。

for (int i=0; i<OrdersTotal(); i++)

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())
を返します。

double RSI0 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 0);
double RSI1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 1);

double STO0=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 0);
double STO1=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 1)とする。

double STO2 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 0)。
double STO3 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 1).

ダブルSL=0,TP=0;

if (RSI1 < RSIDownLevel && RSIDownLevel < RSI0 && STO2 < STO0){.

if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits)です。
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NUL L,Magic)==-1) Print(GetLastError())する。
}

if (RSI1 > RSIUpLevel && RSIUpLevel > RSI0 && STO3 > STO1){.

if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits)です。
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi d,Digits),スリッページ,SL,TP,NULL,Magic)==-1) Print(GetLastError())
}

return(0)です。
}


もう一度言いますが、私の注文は現在のローソク足で開くことでトリガーされ、次のローソク足で開く注文が必要なのです助けてください!!!

 
sviter-pro:

おやすみなさい!私のExpert AdvisorにはRSIとSTOがありますが、売買シグナルが出たときに新しいローソク 足で開き、現在のローソク足で開かないようにすることはできません。

もう一度言いますが、私の注文は現在のローソク足でトリガーされますが、私は次のローソク足で注文を開く必要があります!!!助けてください!!!


//+------------------------------------------------------------------+
void OnTick()
  {

   for(int i=0; i<OrdersTotal(); i++)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && Magic==OrderMagicNumber())
            return;

   double RSI0 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 0);
   double RSI1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 1);

   double STO0=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 0);
   double STO1=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 1);

   double STO2 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 0);
   double STO3 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 1);

   double SL=0,TP=0;
   
   if(NewBar())
     {
      if(RSI1<RSIDownLevel && RSIDownLevel<RSI0 && STO2<STO0)
        {

         if(takeprofit!=0) TP=NormalizeDouble(Ask+takeprofit*Point,Digits);
         if(stoploss!=0) SL=NormalizeDouble(Ask-stoploss *Point,Digits);
         if(OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NUL L,Magic)==-1) Print(GetLastError());
        }

      if(RSI1>RSIUpLevel && RSIUpLevel>RSI0 && STO3>STO1)
        {

         if(takeprofit!=0) TP=NormalizeDouble(Bid-takeprofit*Point,Digits);
         if(stoploss!=0) SL=NormalizeDouble(Bid+stoploss *Point,Digits);
         if(OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi d,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
        }
     }

   return(0);
  }
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime time=0;
   if(time==0)
     {
      time=Time[0];
      return false;
     }
   if(time!=Time[0])
     {
      time=Time[0];
      return true;
     }
   return false;
  }
//+------------------------------------------------------------------+
 
sviter-pro:

おやすみなさい!私のExpert AdvisorにはRSIとSTOがありますが、売買シグナルが発生したときに、現在のローソク 足ではなく、新しいローソク 足で開くようにすることができません。

は、このようなコードです。

もう一度言いますが、私の注文は現在のローソク足で開くことでトリガーされ、次のローソク足で開く注文が必要なのです助けてください!!!

0と1のバーからインジケーターの値を取ります。

0 と 1 の代わりにそれぞれ 1 と 2 の値を取る。

理由: