Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 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);   
  }
//+------------------------------------------------------------------+

não tem graça
 
pako:
não é engraçado.

Pensou em responder dessa forma durante 30 minutos?

Isso não é uma resposta. Seja mais específico, Paco.

Sabe que não tem graça nenhuma, mas a história não diz nada sobre isso...

 

Qualquer testador, deve incluir incertezas.

Não preciso de vos explicar. 2 ou 3 pontos a realizar. 0,1-1 ponto de comissão. E assim por diante.

Mas, mais uma vez, não vale a pena explicar-vos que também existem outros parâmetros.

Por exemplo, vamos supor que atingimos uma tendência. Por exemplo, no EURUSD. Para o período a partir de Janeiro deste ano, por exemplo, de novo! Então quanto dinheiro é que ganhámos até agora? É fácil de calcular. Mas o quê? Se investirmos exactamente a mesma quantia de dinheiro. Teremos exactamente o mesmo lucro dentro de alguns dias? É com isso que um comerciante deve sonhar!! Agora, vamos ao que interessa. Estratégia? Se for possível em código de máquina? Deve fazer algo semelhante, ou próximo da estratégia de um comerciante experiente.

Numa palavra, olhando para a sua criação! O que pode dizer? Não posso dizer nada. Como é mau! Tudo está tão errado. Tudo está tão longe da verdadeira direcção. Estou apenas a ver televisão. Estou a descansar, estou apenas a descansar!!!

Mas boa sorte, no entanto.

 
new-rena:

Pensou em responder dessa forma durante 30 minutos?

Isso não é uma resposta. Seja mais específico, Paco.

Sabe que não tem graça nenhuma, mas a história não diz nada sobre isso...

no carrinho conta bem :))))
 
pako:
no carrinho conta correctamente :))))

Ainda uma ideia aqui e eu dei-a (so....):

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

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

 
new-rena:

Também devemos colocar quando o 1º do mês cai num fim-de-semana, pois o testador não roda aos fins-de-semana... Não vi sobre a excelência.

Bem, e rolar na inicialização de há alguns meses E para o mês actual não faria mal, de modo a não esperar pelo fim do cálculo do número da semana de um mês inteiro. Mas todas estas são nuances ....

É isso que torna a MQL4 tão atraente - o código é curto e claro!

Não tenho tempo agora, mas Kim tem todas as funções para procurar datas e horas, há o início do mês e o número da semana, em geral já vi tudo, não me lembro onde o vi, mas talvez aqui: https://forum.mql4.com/ru/38949
 
Dimitri escreveu há muito tempo tudo para si sobre tempo, dias, semanas, meses, anos... Está a reinventar a roda?
 

Ah. Anos, meses, dias de semanas. Horas???? 15 minutos???? Ah. !5 minutos trabalhados e Ah. Ah, quanto dinheiro. Ou vinte? E, mais uma vez. Ah.

 
Karputov Vladimir:

Quando um indicador deve ser adicionado à janela principal

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;
}

Também retirou o código do botão dos exemplos, .... Como fazer com que a pressão do botão não seja fixa, ou seja, após a sua função ser executada, volta ao seu estado inicial ...

 
new-rena:
Precisa de um painel de controlo personalizado que lhe permita adicionar qualquer número de indicadores de um ou mais?

Não sei como torná-lo mais simples, se é necessário ou não...

Vou pensar nisso mais tarde.

Razão: