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

 
Artyom Trishkin:
頑固に悪気はないんです。なぜ?
そして、変数は明示的に初期化する必要があります。初期化の重要性については、いつか紹介します。とりあえず、中括弧の中のものはすべて捨ててください。

ジョークに感謝します。ありがとうございます。

 
input int ExtDepth=12;//
input int ExtDeviation=5;//
input int ExtBackstep=3;//

input int Deviation=10;

//---------------------------------
int zz_handle;
struct zz_info{
   double P_;
   datetime T_;
};
double zz_value[];
datetime zz_time[];
zz_info zz_highs[2];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   zz_handle=iCustom(_Symbol,PERIOD_CURRENT,"Examples\\ZigZag",ExtDepth,ExtDeviation,ExtBackstep);
   

   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

   int count=0; 
   int i=1;
   
   CopyBuffer(zz_handle,0,1,1,zz_value);
   if(zz_value[0]!=0)
      {
      while(count<2)
         {
            CopyBuffer(zz_handle,0,i,1,zz_value);
            CopyTime(_Symbol,PERIOD_CURRENT,i,1,zz_time);
            i++;
            if(zz_value[0]!=0)
               {
                  zz_highs[count].P_=zz_value[0];
                  zz_highs[count].T_=zz_time[0];
                  count++;
               }
                           
         }
      DrawFibofan(zz_highs);
      }
      double high[];
      double low[];
      datetime Time[];
      CopyHigh(_Symbol,PERIOD_CURRENT,1,1,high);
      CopyLow(_Symbol,PERIOD_CURRENT,1,1,low);
      CopyTime(_Symbol,PERIOD_CURRENT,1,1,Time);
      double fibo_p=ObjectGetValueByTime(0,"DisFibo",Time[0],0);
      Comment(fibo_p);
   
  }
//+------------------------------------------------------------------+
void DrawFibofan(zz_info &zz[])
{
   if(zz[0].P_-zz[1].P_>0) 
      {
         ObjectDelete(0,"AscFibo");
         ObjectCreate(0,"AscFibo",OBJ_FIBOFAN,0,zz[1].T_,zz[1].P_,zz[0].T_,zz[0].P_);
         ObjectSetInteger(0,"AscFibo",OBJPROP_LEVELS,1);
         ObjectSetDouble(0,"AscFibo",OBJPROP_LEVELVALUE,0.882);
         ObjectSetInteger(0,"AscFibo",OBJPROP_LEVELCOLOR,clrNavy);
         ObjectSetInteger(0,"AscFibo",OBJPROP_WIDTH,2);
         ObjectSetString(0,"AscFibo",OBJPROP_LEVELTEXT,"88.2");
      }

      else
      {
         ObjectDelete(0,"DisFibo");
         ObjectCreate(0,"DisFibo",OBJ_FIBOFAN,0,zz[1].T_,zz[1].P_,zz[0].T_,zz[0].P_);
         ObjectSetInteger(0,"DisFibo",OBJPROP_LEVELS,1);
         ObjectSetDouble(0,"DisFibo",OBJPROP_LEVELVALUE,0.882);
         ObjectSetInteger(0,"DisFibo",OBJPROP_LEVELCOLOR,clrNavy);
         ObjectSetInteger(0,"DisFibo",OBJPROP_WIDTH,2);
         ObjectSetString(0,"DisFibo",OBJPROP_LEVELTEXT,"88.2");
      }
}

前のローソク足のフィボファンラインの値を取得する方法がわからないのですが、教えていただけますか?

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Обсудим совместные проекты в редакторе - зачем они и...
 
Roman Sharanov:

前のローソク足のフィボファンラインの値を取得する方法がわからないのですが、教えていただけますか?

なんかここにmql4とmql5の両方が溜まっている...。

どのような言語で値を取得すればよいのでしょうか?

 
nicholishen:

浮動小数点による数値の等価比較

bool ( fabs (number1-number2) < _Point / 10 * 5 )
bool flag = ( fabs (number1-number2) < _Point / 10 * 5 )
 
ターミナルでアカウントを削除した場合、ターミナルに表示されているアカウントのみが削除され、ブローカーのサーバーにあるアカウント自体は削除されないと理解しています。
 
igrok333:
ターミナルでアカウントを削除した場合、ターミナルに表示されているアカウントのみが削除され、ブローカーのサーバーにあるアカウント自体は削除されないと理解しています。

はい、その通りです。

 
STARIJ:
それはとてもシンプルなことです。iMAを計算するためには7つのパラメータを設定する必要があります。最初のパラメータであるシンボルの 名前は明白である。2つ目のタイムフレームとしてM1 を設定 します。第3パラメータ - 期間 - あなたが必要とするよりも何倍も大きいように設定し、どのように多くの日数が1分以上である。第4パラメータ - shift = 0.次の2つのパラメータ、つまり平均化の方法と価格の種類はご存知の通りです。最後にバー・ナンバーがありますが、必要な時間がわかっている場合はバー・ナンバーを計算してください。以上です。M5とM15の時間枠で計算してみて、ダブルチェックする。M30用でもいいかもしれませんね。

アレクセウ・フェドトフ

というくらいにシンプルです。

こんな感じです。


明日試してみて、また報告します。ありがとうございました)

 

パラボリック SAR指標の反転の瞬間を捉えてロックする方法を教えてください。少なくとも、どうすればいいのかのアイデアだけでも。ありがとうございました。

 
Corvin85:

パラボリックSAR指標の反転の瞬間を捉えてロックする方法を教えてください。少なくとも、どうすればいいのかのアイデアだけでも。使い方が全くわからない。


をクリックすると、現在のバーと前のバーを確認することができます。

例えば、前作は価格より高く、今作は価格より低い。

 

フォーラムの皆様、こんにちは。同じ条件でポジションを建てた ときに、t1チケットが再描画されないようにするために必要なことを教えてください。そのため、これらの(他のポジションではなく)ポジションを閉じる条件が発生したときに、両方(場合によってはそれ以上)のポジションを閉じることができます。

if(ЗДЕСЬ УСЛОВИЕ ОТКРЫТИЯ ПОЗИЦИИ БАЙ)
      {
      t1=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,0,0,"",0,0,Green);
      if(t1>0)
           {
            if(OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES))
              { Print("Открыта позиция BUY20");
               buy20=true;
              }
           }
         else
            Print("Error opening BUY20 order : ",GetLastError());
      return;
      }


のチケットを購入します。ここまでは、最後のチケットだけが読み込まれ、閉ループでは最初のチケットは無視されます。ループは正しく構築されているようです。

void ClosePoz()
  { RefreshRates();
         double WPR0 = iWPR(NULL,PERIOD_M5,bars,0);
         bool rez1 = false;
         bool rez2 = false;
  int total=OrdersTotal();
      for(int i=OrdersTotal()-1;i>=0;i--)
      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {
         if(OrderTicket()==t1 && buy20 && MathAbs(WPR0)>81)
         rez1 =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,clrNONE); 
        
         if(OrderTicket()==t2 && buy80 && MathAbs(WPR0)<20)
         rez2 =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,clrNONE);                 
         }
       continue;  
      }      
     
  }