[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 806

 
Dersu:

MERCI pour votre attention, drknn.

Pour être honnête, je n'ai pas lu vos fils - j'ai juste regardé ce fil, vu que personne n'avait répondu au message répété, décidé de répondre... Je n'ai pas le temps de tout faire d'un coup - je dois faire la part des choses.
 
extern string Settings = "Paramètres principaux" ; //
extern int MagicNumber = 227 ; //Numéro individuel //.
extern double Lots = 1 ; //lot minimal ///.
extern int Profit = 5000 ; // Prise de profit //
extern inttern Loss = 10000 ; //Stop Loss //.
extern int Delta = 500 ;
extern int int Raznica = 700 ; //Stop Loss ;
//--------------------------------------------------------------------------------//
extern string Indicator2 = "Bands" ; //
extern int int BandsPeriod = 20 ; // //période //
external inttern Bands_shift = 0 ; //offset //
extern double Deviations = 2.0 ; // //
//--------------------------------------------------------------------------------//
extern int Slip = 5 ; //Slip ///////////////
int tick,tick2,go ; // //
//--------------------------------------------------------------------------------//
int start() //
{ /////////////////////////////////
//---------------------------------------------------------------------------------------------------------------//
// Indicateur de bandes //
//---------------------------------------------------------------------------------------------------------------//
double verhB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,MODE_UPPER,0);//calculer l'indicateur de ligne supérieure///
double seredina=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,0,0) ; //calcul de l'indicateur de ligne médiane///
double nizB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,MODE_LOWER,0);//calcul de l'indicateur de ligne inférieure///
//---------------------------------------------------------------------------------------------------------------//
double slb, tpb, sls, tps ;
double go=(verhB-nizB) ;
Alerte ("verhB",DoubleToStr(verhB,Chiffres)) ;
Alerte ("nizB ",DoubleToStr(nizB,Chiffres)) ;
slb=NormalizeDouble(Ask - (Loss*Point),Digits) ;
tpb=NormalizeDouble(Ask + (Profit*Point),Digits) ;
sls=NormalizeDouble(Bid + (Loss*Point),Digits) ;
tps=NormalizeDouble(Bid - (Profit*Point),Digits) ;
si(OrdersTotal()==0)
{
si(go<=Delta/10000)
Alert("Delta ", DoubleToStr(go,Digits)," arrive ! !!") ;
tick =OrderSend(Symbole(),4,Lots,NormalizeDouble(Ask+Raznica*Point,Digits),Slip,slb,tpb,NULL,MagicNumber,0,CLR_NONE) ; //entrer par/
if(tick<0) Print("Erreur # - ",GetLastError()) ;

tick=OrderSend(Symbol(),5,Lots,NormalizeDouble(Bid-Raznica*Point,Digits),Slip,sls,tps,NULL,MagicNumber,0,CLR_NONE) ; //L'entrée est fixée //.
if(tick<0) Print("Erreur # - ",GetLastError()) ;



}

return(0);}


Aidez-moi à réparer ! !!! Je fais n'importe quoi depuis une semaine ! !! Le point est que, à une certaine distance entre la limite supérieure et inférieure de la Bollinger deux pendentifs ont été mis sur l'achat d'arrêt et de vente d'arrêt. Je ne peux pas définir la différence parce écrit que la limite supérieure et inférieure de la Bollinger prix est le même ..... Veuillez m'aider ......

 
ne regardez pas mal les commentaires des fonctions
 
zhuki:
Vous n'avez probablement pas de lot normalisé, normalisez-le avec :
double NormalizeDouble( double valeur, int chiffres)

Vous ne pouvez pas arrondir un lot à des chiffres ! !!
 
VOLDEMAR:
ne regardez pas les commentaires des fonctions à tort

prêter attention à

double verhB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,MODE_UPPER,0);//calculer l'indicateur de ligne supérieure///

double seredina=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,0,0) ; //calcul de l'indicateur de ligne médiane///

double nizB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,MODE_LOWER,0);//calculer l'indicateur de ligne de fond //

les échanger

 
Je suis hors sujet ! comment obtenir Point = 0.00001 (5 chiffres) pour alpari par des moyens standards ? ???
 
ruslanchik:
Je suis hors sujet ! comment obtenir Point = 0.00001 (5 chiffres) pour alpari par des moyens standards ? ???
double point(string symb){
   double p = 0;        
   int d = 0;
        
   p = MarketInfo(symb, MODE_POINT);    
   d = MarketInfo(symb, MODE_DIGITS);
   if (d == 5 || d == 3) p *= 10;
   return(p);
}
 
OK !
 

Bon après-midi

Qui regarderait le code de l'indicateur - il n'écoute pas du tout les paramètres.

Je ne suis pas bon en code

//---- paramètres de l'indicateur
#propriété indicator_separate_window
#property indicator_buffers 1
#propriété indicator_color1 Argent
//---- paramètres de l'indicateur
extern int FastEMA=12 ;
externe interne SlowEMA=26 ;
extern inttern SignalSMA=9 ;
//---- tampons indicateurs
double ind_buffer1[] ;
double ind_buffer2[] ;
double ind_buffer3[] ;
double ind_buffer4[] ;

//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- 2 tampons supplémentaires sont utilisés pour le comptage.
IndicatorBuffers(4) ;
//---- paramètres de dessin
SetIndexStyle(0,DRAW_LINE) ;
SetIndexDrawBegin(0,SignalSMA) ;
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2) ;
//---- cartographie de 3 tampons indicateurs
si(!SetIndexBuffer(0,ind_buffer1) &&
!SetIndexBuffer(1,ind_buffer2) &&
!SetIndexBuffer(3,ind_buffer4) &&
!SetIndexBuffer(2,ind_buffer3))
Print("cannot set indicator buffers !") ;
//---- nom pour la DataWindow et l'étiquette de la sous-fenêtre de l'indicateur
IndicatorShortName() ;
//---- initialisation faite
retour(0) ;
}
//+------------------------------------------------------------------+
//| Moyenne mobile de l'oscillateur |
//+------------------------------------------------------------------+
int start()
{
int limite ;
int counted_bars=IndicatorCounted() ;
//---- vérifier les erreurs éventuelles
si(counted_bars<0) return(-1) ;
//---- dernière barre comptée sera recomptée
si(counted_bars>0) counted_bars-- ;
limit=Bars-counted_bars ;
//---- macd compté dans le 1er tampon supplémentaire
for(int i=0 ; i<limit ; i++)
ind_buffer2[i]=iOBV(NULL, 0, PRICE_CLOSE, i) ;
//---- ligne de signal comptée dans le 2ème tampon supplémentaire
for(i=0 ; i<limit ; i++) {
ind_buffer3[i]=iMAOnArray(ind_buffer2,Bars,10,0,MODE_SMA,i) ;
ind_buffer4[i]=iMAOnArray(ind_buffer2,Bars,3,0,MODE_SMA,i) ;
}
//---- boucle principale
pour(i=0 ; i<limite ; i++)
ind_buffer1[i]=ind_buffer2[i]-ind_buffer3[i];
//---- fait
retour(0) ;
}
//+------------------------------------------------------------------+

xtern int FastEMA=12 ;
extern int SlowEMA=26 ;
extern int SignalSMA=9 ; Ces paramètres. Les changements dans la boîte ne mènent à rien. La ligne de l'indicateur ne change pas.

L'auteur a tué ma demande

 
Vous avez probablement un code provisoire ou incomplet. L'indicateur est câblé et aucune des variables externes n'est utilisée dans le code.