Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 447

 
TarasBY:
Et où avez-vous lu cela à propos de TimeDayOfWeek () (dans l'exemple) ? :)))

Sur la droite ;)

Je me suis trompé, je peux aussi le définir sous la forme Time[], mais dans l'exemple, c'est différent et plus pratique )))).

 
Vitek2010:
Non, je vais vous expliquer - votre forum est comme un espoir pour le dernier bastion compétent du prog. et de l'insertion de la taille - c'est ainsi que l'écriture PERIOD_W1 le voitmais ni l'utilisation de la taille ni l'utilisation de points de référence fixes sous forme de dates n'obtiennent l'effet désiré. J'ai posté une question spécifique sur le vendredi - d'ailleurs votre code ne compile pas parce qu'il dit 'version' - propriété inconnue, donc si vous ne savez pas comment mettre DayOfWeek et 5 (le numéro du vendredi) dans le code, les autres options ne vous aideront pas .


if(TimeDayOfWeek(TimeCurrent())==5)   //Пятница
 
r772ra:



S'il vous plaît, collez votre variante dans le code de mon indicateur et compilez-le. Et postez l'indicateur corrigé en texte clair et non comme un fichier. Le camarade Venin m'a donné un code indéchiffrable et aucune réponse.

#propriété indicator_separate_window

#property indicator_buffers 1

#propriété indicator_color1 Lime

//--------------------------------------------------------------------

double Buffer[] ;

//--------------------------------------------------------------------

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2) ;

SetIndexBuffer(0,Buffer ;)

retour(0) ;

}

// -------------------------------------------------------------------


int deinit()

{


retour(0) ;

}

//--------------------------------------------------------------------

int start()

{

int StartBar = Bars - IndicatorCounted() - 1 ;

for(int i = StartBar ; i >= 0 ; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) /Vendredi

if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])

Tampon[i] = 0 ;

sinon

Buffer[i] = Buffer[i+1] ;

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){/si les mouvements actuel et précédent sont tous deux en hausse

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){// si le mouvement actuel et précédent va vers le bas

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){//si le mouvement actuel est en hausse et le précédent en baisse

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){// si le mouvement actuel est à la baisse et le précédent à la hausse

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

}

retour(0) ;

}

//---------------------------------------------------------------------

 
Vitek2010:


S'il vous plaît, collez votre variante dans le code de mon indicateur et compilez-le. Et postez l'indicateur corrigé en texte brut et non comme un fichier. Le camarade Venin m'a donné un code incompréhensible et n'a pas dit un mot.


construire 509

//+------------------------------------------------------------------+
//|                                                    Vitek2010.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_separate_window

#property indicator_buffers 1

#property  indicator_color1 Lime

//--------------------------------------------------------------------

double Buffer[];

//--------------------------------------------------------------------

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexBuffer(0,Buffer);

return(0);

}

// -------------------------------------------------------------------



int deinit()

{



return(0);

}

//--------------------------------------------------------------------

int start()

{

int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Пятница

Buffer[i] = 0;

else

Buffer[i] = Buffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее и преддыдущее движение растут

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее и преддыдущее движение падают

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее лвижение растет а предыдущее падает

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее движение падает а предыдущее растет

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

}

return(0);

}

//---------------------------------------------------------------------
 
Ce n'est pas comme ça qu'on définit Vendredi sur l'histoire, je ne sais pas.
 
TarasBY:
alors qu'est-ce que la référence à une bibliothèque conforme a à voir avec ça ?


Parce que :

TarasBY:
Vitya, il n'y a rien à régler ici - la personne veut que les variables globales d'un sandbox (EA avec ses bibliothèques) soient visibles dans un autre sandbox(bibliothèque compilée). :)))
 

Messieurs, pourriez-vous me faire une faveur et jeter un coup d'oeil à ce morceau de code et voir si j'ai correctement entré les conditions d'entrée pour les 3 indicateurs.

Comme je suis en train d'apprendre beaucoup de choses que je ne comprends pas.

E_ma=iMA(Symbole(),TimeFrame,period_ema,0,MODE_EMA,PRICE_CLOSE,1) ;
Cloce =iClose(Symbol(),PERIOD_H1,1) ;

e_ma=iMA(Symbol(),timeframe,period_ema,0,MODE_EMA,PRICE_CLOSE,1) ;
cloce =iClose(Symbol(),PERIOD_M15,1) ;

bbUP=iCustom(Symbol(),PERIOD_M5,"Bollinger Bands",BandsPeriod,BandsShift,BandsDeviations,1,0) ;
bbDOWN=iCustom(Symbol(),PERIOD_M5, "Bollinger Bands",BandsPeriod,BandsShift,BandsDeviations,2,0) ;

si(OrdersTotal()==0 && CountBuy()==0 && CountSell())
{
if(Cloce >E_ma && cloce >e_ma)
{
si(Ask<=bbDOWN)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",Magic,0,Green) ;
si(ticket>0)
{
TP = NormalizeDouble(Ask + TakeProfit * Point, Digits) ;
SL = NormalizeDouble(Ask-StopLoss * Point, Digits) ;
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0) ;
}
}
sinon
if(Cloce <E_ma && cloce <e_ma)
{
si(Enchère>=bbUP)
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,",Magic,0,Red) ;
si(ticket>0)
{
TP = NormalizeDouble(Bid - TakeProfit * Point, Digits) ;
SL = NormalizeDouble(Bid+StopLoss* Point, Digits) ;
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0) ;
}
}
}


retour(0) ;

Corrigez-moi si quelque chose est faux, compile sans erreurs, mais dans le testor ordres ne s'ouvrent pas. Parce que ? où une erreur dans la condition. Comment l'écrire correctement, je ne comprends pas encore.quelqu'un sur les doigts expliquer S'IL VOUS PLAÎT !!!

 
r772ra:
Tout ça est faux, comment définir Vendredi sur l'histoire, je ne sais pas.

Vous avez supprimé la mise à zéro du cycle hebdomadaire if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])) et l'avez remplacé par if(TimeDayOfWeek(TimeCurrent())==5) /Vendredi ; peut-être que si ces fonctions fonctionnent ensemble d'une manière ou d'une autre, cela pourrait fonctionner. J'ai peut-être essayé une centaine de choses différentes. je pense qu'il est facile d'afficher des relevés multi-temps avec des délais hebdomadaires sur des délais inférieurs. je n'arrive toujours pas à trouver une solution.

 
Vitek2010:

Oui, vous avez supprimé la mise à zéro du cycle hebdomadaire if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])) et l'avez remplacée par if(TimeDayOfWeek(TimeCurrent())==5) //Peut-être que si ces fonctions sont d'une manière ou d'une autre réunies, elles fonctionneront. J'ai peut-être essayé une centaine de choses différentes. Je pense qu'il est facile d'afficher des relevés multitemporels avec un cadre hebdomadaire sur des cadres temporels inférieurs, mais je ne trouve toujours pas de solution.


Voici une idée, ouvrez une nouvelle barre hebdomadaire - remettez le tampon à zéro, puis accumulez vos points.
 
alsu:
Faites de Ticket un tableau Ticket[5], stockez-y les 5 tickets. Lors de la fermeture, passez en revue tous les tickets en conséquence.

Comment le mettre en œuvre approximativement ? Si dans les autres fonctions je semble avoir compris, mais avec les ordres et les tableaux je n'ai pas encore tout à fait compris.
Raison: