Indicateur Questions diverses

 

Salut,

#Broker Time

J'ai passé quelques heures à lire certains commentaires, mais je n'ai pas compris comment je peux régler letemps de moncourtier sur mes indicateurs / comment je peux régler mes indicateurs sur le temps de mon courtier. (peut-être ai-je confondu)

Mon Broker Time commence à 01:00, mais tous mes indicateurs fonctionnent à partir de 00:00.

Alors comment puis-je résoudre mon problème ?

Veuillez m'aider.

Merci.

(L'anglais n'est pas ma langue maternelle).

 

#Broker Time - Fermé pour le moment.

J'ai résolu mon problème.

 

#Month OBJ_VLINE

J'ai besoin de créer des lignes de Mois, mais j'ai du mal.

int _prd = PERIOD_MN1;
int _cnt_MN1 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_MN1, 0 ) );
for ( int i = 0; i < _cnt_MN1; i++ )
{
    //---date & time
    datetime _time          = Time[i]                                               ;
    datetime _prd_time      = iTime( Symbol(), _prd, 0 )                            ;
    datetime _timeCvrt_MN1  = _time + ( _time % _prd_time ) - PeriodSeconds( _prd ) ;
    //---name
    string   _vlineName_MN1 = _prefix + "PERIOD_MN1 - " + TimeToStr( _timeCvrt_MN1, TIME_DATE )    ;

    if ( _Period < PERIOD_MN1 )
    {
        ObjectCreate( _vlineName_MN1, OBJ_VLINE     , 0, _time, 0 )                 ;
        ObjectSet   ( _vlineName_MN1, OBJPROP_COLOR , C'180,160,080'  )             ;
    }   //---if Close
}   //---for Close

Quelqu'un peut-il m'aider ?

Best

 
Vous savez quand le mois a commencé : iTime(_Symbol, PERIOD_MN1, 0) Pas besoin de boucle, ni de tout le reste. Il suffit de tracer la ligne.
datetime BOM = iTime( Symbol(), PERIOD_MN1, 0 ); // Beginning of the month.
string   _vlineName_MN1 = _prefix + "PERIOD_MN1 - " + TimeToStr( BOM, TIME_DATE )    ;
ObjectCreate( _vlineName_MN1, OBJ_VLINE     , 0, BOM, 0 )                 ;
ObjectSet   ( _vlineName_MN1, OBJPROP_COLOR , C'180,160,080'  )             ;
 
int _cnt_MN1 = 12; // 12 lines for a year 24 for two years and etc.
for ( int i = 0; i < _cnt_MN1; i++ )
{
   ObjectCreate(0,"PERIOD_MN1-"+IntegerToString(i),OBJ_VLINE,0,iTime(Symbol(),PERIOD_MN1,i),0);
   ObjectSetString(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_TOOLTIP,TimeToString(iTime(Symbol(),PERIOD_MN1,i),TIME_DATE));
   ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i), OBJPROP_COLOR , C'180,160,080'  );
   //ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
   //ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_WIDTH,1);
}
 
whroeder1:
Vous savez quand le mois a commencé : iTime(_Symbol, PERIOD_MN1, 0) Pas besoin de la boucle, ni de tout le reste. Il suffit de tracer la ligne.
datetime BOM = iTime( Symbol(), PERIOD_MN1, 0 ); // Beginning of the month.
string   _vlineName_MN1 = _prefix + "PERIOD_MN1 - " + TimeToStr( BOM, TIME_DATE )    ;
ObjectCreate( _vlineName_MN1, OBJ_VLINE     , 0, BOM, 0 )                 ;
ObjectSet   ( _vlineName_MN1, OBJPROP_COLOR , C'180,160,080'  )             ;

Merci pour la réponse rapide et votre commentaire.

J'ai également essayé votre code, mais je ne vois qu'un seul mois précédent 2016/10.

Mais j'ai besoin de créer des lignes de mois à partir de l'année actuelle et de l'année future.

Exemple : Les mois commencent à partir de - janvier 2016 - février 2016 - mars 2016 - ... jusqu'à décembre 2016.

J'espère que vous me comprenez bien maintenant.

Alors, que puis-je faire pour cela, s'il vous plaît ?

Merci d'avance.

 
Marco vd Heijden:
int _cnt_MN1 = 12; // 12 lines for a year 24 for two years and etc.
for ( int i = 0; i < _cnt_MN1; i++ )
{
   ObjectCreate(0,"PERIOD_MN1-"+IntegerToString(i),OBJ_VLINE,0,iTime(Symbol(),PERIOD_MN1,i),0);
   ObjectSetString(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_TOOLTIP,TimeToString(iTime(Symbol(),PERIOD_MN1,i),TIME_DATE));
   ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i), OBJPROP_COLOR , C'180,160,080'  );
   //ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
   //ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_WIDTH,1);
}

Vous comprenez clairement ce que je pense, et je n'ai pas vu votre excellent commentaire (pendant que j'écrivais la réponse au commentaire précédent).

Merci beaucoup.

 
Max Enrik:

Vous comprenez clairement ce que je pense, et j'ai écrit une réponse au commentaire précédent (alors que je n'ai pas vu votre excellent commentaire).

Merci beaucoup.

Restez simple.
 
    ObjectCreate(0,"Future-H4-",OBJ_VLINE,0,0,0);
    ObjectMove(0,"Future-H4-",0,iTime(Symbol(),PERIOD_H4,0)+PERIOD_H4,0);

MN1 est un peu trop loin mais en voici un pour H4.

Vous pouvez également utiliser

TimeCurrent()
et déplacer votre ligne dans la fonction OnTick() ou OnTimer() pour qu'elle se déplace avec le temps.
 
Marco vd Heijden:
    ObjectCreate(0,"Future-H4-",OBJ_VLINE,0,0,0);
    ObjectMove(0,"Future-H4-",0,iTime(Symbol(),PERIOD_H4,0)+PERIOD_H4,0);

MN1 est un peu trop loin mais en voici un pour H4.

Vous pouvez aussi utiliser

TimeCurrent()
Et déplacez votre ligne dans la fonction OnTick() ou OnTimer() alors elle se déplacera avec le temps.

Wow ! Merci beaucoup pour votre commentaire.

J'utilise le code ci-dessous (celui que vous avez mentionné) dans mon indicateur de lignes de période, donc cela fonctionne bien pour moi jusqu'à 'PERIOD_MN1'.

iTime(Symbol(),PERIOD_*,0)+PERIOD_*

---

J'ai lu un peu plus sur 'Event Handling Functions', mais j'ai besoin de l'avis d'un codeur professionnel.

Quelle fonction est utile pour mon indicateur (heures 4, jours, semaines, mois) ?

exemple : init(), start(), OnTick() ou OnTimer()

Merci d'avance.

 

Vous pouvez dessiner toutes les lignes dans OnInit() et ensuite en dessiner de nouvelles dès que le temps d'ouverture de la dernière barre change, vous saurez qu'il y a eu une nouvelle barre.

Mais je ne suis pas sûr de ce que vous voulez faire exactement.