初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 608

 

new-rena:
Ок. В каком месте? В конце месяца? Я по календарику проверял...

//+------------------------------------------------------------------+
//|                                                  WeekOfMonth.mq4 |
//|                                                         new-rena |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "new-rena"
#property link      ""
#property version   "1.00"
#property strict
//--------------------------
double DayOfMonth,WeekOfMonth;
int DayOfWeeks,MonthOfYear,PrevMonth,Delta=0,Show=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//--- 
PrevMonth=TimeMonth(TimeLocal());
DayOfMonth=TimeDay(TimeLocal());
if(DayOfMonth==1)
   {
      Delta=TimeDayOfWeek(TimeLocal());
      Show=1;
   }
//--- init
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//--- deinit
      return(0);   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
//---   
MonthOfYear=TimeMonth(TimeLocal());
DayOfMonth=TimeDay(TimeLocal());
DayOfWeeks=TimeDayOfWeek(TimeLocal());
if(PrevMonth!=MonthOfYear && DayOfMonth==1)
   {
      Delta=DayOfWeeks;
      Show=1;
   }
if(Show==1)
   {
      WeekOfMonth=MathCeil((DayOfMonth+Delta)/7);      
      Print("DayOfMonth N "+DoubleToStr(DayOfMonth,0));
      Print("WeekOfMonth N "+DoubleToStr(WeekOfMonth,0));
   }

PrevMonth=MonthOfYear;
//--- start
      return(0);   
  }
//+------------------------------------------------------------------+

洒落にならない
 
pako:
面白くもなんともない。

30分間、そのように答えようと思いましたか?

それは答えになってない。もっと具体的に言ってよ、パコ。

全然面白くないのに、歴史は黙っているんだな...。

 

どんなテスターでも、不確定要素を含まなければならない。

説明するまでもないでしょう。2~3点のパフォーマンス0.1-1 ポイント手数料 など。

しかし、繰り返しになりますが、他のパラメータもあることを私が説明しても意味がありません。

例えば、あるトレンドにぶつかったとします。例えば、EURUSDの 場合。今年1月からの期間については、例えば、また!では、これまでいくら稼いだのか?簡単に計算することができます。でも、何?全く同じ金額を投資した場合。数日後に全く同じ利益を得ることができるのでしょうか?これこそトレーダーの夢だ!! さて、本題に入ろう。戦略?機械語コードで可能か?経験豊富なトレーダーの戦略に近い、あるいは似たようなことをしなければならない。

一言で言えば、「自分の作品を見ること」ですなんて言ったらいいんだろう。何も言えません。なんて悪いことなんだ! 何もかもが間違っている。すべてが真の方向とはかけ離れているのです。テレビを見ているだけです。休んでます!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?

でも、頑張ってね。

 
new-rena:

30分間、そのように答えようと思いましたか?

それは答えになってない。もっと具体的に言ってよ、パコ。

全然面白くないのに、歴史は黙っているんだな...。

カートに入れるとカウントされます :)))
 
pako:
カートに入れると正しくカウントされます :)))

まだここにアイデアがあり、私はそれを与えました(だから......)。

if(PrevMonth!=MonthOfYear && DayOfMonth==1)    {       Delta=DayOfWeeks;       Show=1;    }

WeekOfMonth=MathCeil((DayOfMonth+Delta)/7); 

 
new-rena:

テスターが土日を回さないので、月の1日が週末にあたるときも入れたほうがいいのでは...。エクセルについては見ませんでした。

さて、そして数ヶ月前からの初期化と現在の月にロールバックすることは、全体の月の週数の計算の終わりを待たないように、傷つけることはないだろう。しかし、これらはすべてニュアンスです.

それがMQL4の魅力で、コードが短くて明快なのです

今時間がないのですが、キムには日付と時間を検索する機能が全部あります。月の始まりと週番号があります。一般的には全部見たことがあります。どこで見たか覚えていませんが、多分ここです。https://forum.mql4.com/ru/38949
 
ディミトリは、時間、日、週、月、年...について、ずっと前にあなたのためにすべてを書きました。車輪の再発明をしていないか?
 

ああ。年、月、日、週。時間?15分?ああ。!5分働いて、あ。ああ......いくらなんだろう。それとも20人?そして、もう一度。ああ。

 
Karputov Vladimir:

メインウィンドウにインジケータを追加する場合

int OnInit() 
  { 
   
//--- Создание кнопки 
  if( !ObjectCreate( 0, "Add_Indicator", OBJ_BUTTON, 0, 0, 0 ) )
  {
  
    Print( "Кнопка 'Добавить' не создана!" );
    return( INIT_FAILED );
  }
  else
  {
    ObjectSetInteger( 0, "Add_Indicator", OBJPROP_CORNER, CORNER_RIGHT_LOWER );
    ObjectSetInteger( 0, "Add_Indicator", OBJPROP_XDISTANCE, 200 );             
    ObjectSetInteger( 0, "Add_Indicator", OBJPROP_YDISTANCE, 500 );
    ObjectSetInteger( 0, "Add_Indicator", OBJPROP_XSIZE, 80 );
    ObjectSetInteger( 0, "Add_Indicator", OBJPROP_YSIZE, 20);

      ObjectSetInteger( 0, "Add_Indicator", OBJPROP_BGCOLOR, clrWhite );
      ObjectSetInteger( 0, "Add_Indicator", OBJPROP_STATE, true );
      ObjectSetString( 0, "Add_Indicator", OBJPROP_TEXT, "Добавить" );
     
  }
    
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",MA_Period,MA_Shift,MA_Method,PRICE_CLOSE);
   if(MA_handle==INVALID_HANDLE)
//--- попробуем добавить индикатор на график 
 Print(__FUNCTION__,", first_start = ",first_start);
//return(INIT_FAILED);
   return(INIT_SUCCEEDED);
  } 
//+------------------------------------------------------------------+
//| Обработка события нажатия кнопок                                 |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam  // параметр события типа string 
                  )                
  {
   long b_state;
   //---
   if(id==CHARTEVENT_OBJECT_CLICK) // НАЖАТ ГРАФИЧЕСКИЙ ОБЪЕКТ       
         if ( sparam == "Add_Indicator" )// Нажата кнопка
         {
      if ( ObjectGetInteger( 0, "Add_Indicator", OBJPROP_STATE, 0, b_state ) )
      {
        if ( b_state == 1 )
        {
          first_start=false;
          ObjectSetInteger( 0, "Add_Indicator", OBJPROP_BGCOLOR,clrWhite );
          ObjectSetString( 0, "Add_Indicator", OBJPROP_TEXT, "Добавить" );
        }
   }
}
 return;
}

ボタンのコードも例からパクりました、、、、。ボタンの押下が固定されず、機能実行後に初期状態に戻るようにするには ...

 
new-rena:
1つまたは複数から任意の数のインジケータを追加できるカスタムコントロールパネルが必要ですか?

どうすればもっとシンプルになるのか、必要なのか、必要でないのか......。

それは後で考えよう。

理由: