[J'écrirai n'importe quel expert ou indicateur gratuitement. - page 109

 
sammi61:

Si ce n'est pas un problème, remplacez les butées par des limites, c'est ce que je demande, et essayez votre levier de vitesse, j'ai le temps d'expérimenter, je posterai le résultat. Mon camcohob@mail.ru merci d'avance. c
OK ! Je le ferai demain.
 
snail09:
OK ! Je le ferai demain.

Merci, je l'attends avec impatience.
 

Bonjour !

Pouvez-vous utiliser la stratégie de trading des Tortues?

 

Bonjour, pouvez-vous écrire une flèche avec un signal sonore reliant les deux cf's ?

les conditions du signal :

1) à une échelle de temps supérieure (par exemple n1), AO passe par zéro, après quoi la deuxième condition est recherchée.

2) sur 2 bas (par exemple m5) AO croise le zéro dans la même direction (il est logique qu'avant il aille dans la direction opposée car au moment où sur n1 AO croisera le zéro vers le haut, sur m5 AO sera déjà au-dessus du zéro, c'est-à-dire que je suis intéressé par un nouveau croisement après le rollback)

 

Membres du forum, j'ai une question.

Les graphiques Renko et leur utilisation ont été discutés ici plus d'une fois. J'utilise depuis longtemps un conseiller expert issu de la base de code qui construit correctement les barres Renko, mais le problème est qu'il les dessine un peu mal en cas de retournement. Regarde, ça les dessine comme ça :

et j'aimerais qu'il y ait un autre bar comme celui-ci :


Dites-moi ce qu'il faut changer dans le code. D'après ce que je comprends, nous devrions changer quelque chose dans les boucles while de ce fragment de code :

bool UpTrend = High[i]+Low[i] > High[i+1]+Low[i+1];
        
            while(UpTrend && (Low[i] < PrevLow-BoxPoints || CompareDoubles(Low[i], PrevLow-BoxPoints))) {
                  PrevHigh = PrevHigh - BoxPoints;
                  PrevLow = PrevLow - BoxPoints;
                  PrevOpen = PrevHigh;
                  PrevClose = PrevLow;
 
                FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);
                FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE);
 
                if(ShowWicks && UpWick > PrevHigh) FileWriteDouble(HstHandle, UpWick, DOUBLE_VALUE);
                else FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE);
                                                
                FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);
                
                UpWick = 0;
                DnWick = EMPTY_VALUE;
                CurVolume = 0;
                CurHigh = PrevLow;
                CurLow = PrevLow;  
                
                if(PrevTime < Time[i]) PrevTime = Time[i];
                else PrevTime++;
            }
        
            while(High[i] > PrevHigh+BoxPoints || CompareDoubles(High[i], PrevHigh+BoxPoints)) {
                  PrevHigh = PrevHigh + BoxPoints;
                  PrevLow = PrevLow + BoxPoints;
                  PrevOpen = PrevLow;
                  PrevClose = PrevHigh;
              
                FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);
                FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE);
 
                    if(ShowWicks && DnWick < PrevLow) FileWriteDouble(HstHandle, DnWick, DOUBLE_VALUE);
                else FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE);
                                
                FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);
                
                UpWick = 0;
                DnWick = EMPTY_VALUE;
                CurVolume = 0;
                CurHigh = PrevHigh;
                CurLow = PrevHigh;  
                
                if(PrevTime < Time[i]) PrevTime = Time[i];
                else PrevTime++;
            }
        
            while(!UpTrend && (Low[i] < PrevLow-BoxPoints || CompareDoubles(Low[i], PrevLow-BoxPoints))) {
                  PrevHigh = PrevHigh - BoxPoints;
                  PrevLow = PrevLow - BoxPoints;
                  PrevOpen = PrevHigh;
                  PrevClose = PrevLow;
              
                FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);
                FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE);
                
                if(ShowWicks && UpWick > PrevHigh) FileWriteDouble(HstHandle, UpWick, DOUBLE_VALUE);
                else FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE);
                
                FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);
 
                UpWick = 0;
                DnWick = EMPTY_VALUE;
                CurVolume = 0;
                CurHigh = PrevLow;
                CurLow = PrevLow;  
                                
                if(PrevTime < Time[i]) PrevTime = Time[i];
                else PrevTime++;
            }
 
Bonjour, aidez-moi à trouver un EA simple. Place un ordre en attente à une distance donnée du prix à un moment donné avec tp et sl. Par exemple : à 23:55, il place un ordre à une distance de 10 pips du prix actuel. Place immédiatement tp=10 pips et sl=16 pips. En outre : si un ordre ne s'est pas déclenché, il est supprimé à 24h00 ; place des ordres unidirectionnels sur différents côtés du prix. Peut-être que quelqu'un peut écrire, au moins pour les conditions de base ou me conseiller où chercher ? Je n'ai rien trouvé de similaire dans le Code Base. Merci d'avance pour toute aide.
 
S'il vous plaît, aidez-moi à bricoler avec ça. Je voudrais que l'indicateur émette un bip lorsqu'il y a un signal d'achat ou de vente, mais cela ne fonctionne pas ! Merci d'avance)

//+------------------------------------------------------------------+
//| SilverTrend_Signal.mq4
//| Ramdass - Conversion seulement
//+------------------------------------------------------------------+
#property copyright "SilverTrend réécrit par CrazyChart"
#lien de propriété "http://viac.ru/"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Violet

//---- paramètres d'entrée
extern int RISK=3 ;
externe interne CountBars=350 ;
extern bool SoundAlert=true ;
int SSP=9 ;

//---- tampons
double val1[] ;
double val2[] ;

//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
string short_name ;
//---- ligne d'indicateurs
IndicatorBuffers(2) ;
SetIndexStyle(0,DRAW_ARROW) ;
SetIndexArrow(0,233) ;
SetIndexStyle(1,DRAW_ARROW) ;
SetIndexArrow(1,234) ;
SetIndexBuffer(0,val1) ;
SetIndexBuffer(1,val2) ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| SilverTrend_Signal |
//+------------------------------------------------------------------+
int start()
{
si (CountBars>=Bars) CountBars=Bars ;
SetIndexDrawBegin(0,Bars-CountBars+SSP) ;
SetIndexDrawBegin(1,Bars-CountBars+SSP) ;
int i,shift,counted_bars=IndicatorCounted() ;
int i1,i2,K ;
double Range,AvgRange,smin,smax,SsMax,SsMin,price ;
bool uptrend,old ;
//----

si(Bars<=SSP+1) return(0) ;
//---- zéro initial
si(barres comptées<SSP+1)
{
for(i=1;i<=SSP;i++) val1[CountBars-i]=0.0;
for(i=1;i<=SSP;i++) val2[CountBars-i]=0.0;
}
//----

K=33-RISK ;
pour (shift = CountBars-SSP ; shift>=0 ; shift--)
{

Plage=0 ;
AvgRange=0 ;
for (i1=shift ; i1<=shift+SSP ; i1++)
{AvgRange=AvgRange+MathAbs(High[i1]-Low[i1] ;
}
Portée=AvgRange/(SSP+1) ;

SsMax=High[shift] ; SsMin=Low[shift] ;
for (i2=shift;i2<=shift+SSP-1;i2++)
{
prix=Haut[i2] ;
si(SsMax<prix) SsMax=prix ;
prix=Bas[i2] ;
si(SsMin>=prix) SsMin=prix ;
}

smin = SsMin+(SsMax-SsMin)*K/100 ;
smax = SsMax-(SsMax-SsMin)*K/100 ;
val1[shift]=0 ;
val2[shift]=0 ;
si (Close[shift]<smin)
{
tendance à la hausse = faux ;
}
si (Close[shift]>smax)
{
tendance à la hausse = vrai ;
}
if (uptrend!=old && uptrend==true) {val1[shift]=Low[shift]-Range*0.5;}
if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*0.5;}
ancien=uptrend ;
}
retour(0) ;
}
//+------------------------------------------------------------------+
void SendAlert(string txt) {
if (Time[0] != tt) {
if (SoundAlert) {
if (txt == "buy") Alert("Trend Long " + Symbol() + ", " + Period()) ;
if (txt == "sell") Alert("Trend Short " + Symbol() + ", " + Period()) ;
}
tt = Temps[0] ;
}
}
 
Je vais écrire un EA gratuitement sur une stratégie d'indicateur intéressante sans martingale. ToR en privé ou sur email mqlskeptik@yandex.ua
 
Bonjour à tous, pourriez-vous m'aider, je voudrais faire un meilleur indicateur de volume. Pour montrer combien est acheté et vendu sur une bougie de volume. Et en passant la souris sur le volume, une fenêtre de données apparaissait. Je négocie par volume et cela m'aiderait beaucoup. J'imagine que ça ressemble à quelque chose comme ça. Merci d'avance !
 

Ce fil est fermé parce qu'il n'a pas rempli sa fonction depuis longtemps.

Veuillez écrire à l'auteur du fil(https://www.mql5.com/ru/users/kubodel/) dès que possible.

Tous les nouveaux messages seront supprimés sans avertissement.

Raison: