[Scriverò qualsiasi esperto o indicatore gratuitamente. - pagina 109

 
sammi61:

Se non è un problema, sostituisci gli arresti con i limiti, la mia richiesta, e fai un giro con il tuo cambio, ho tempo per sperimentare, posterò il risultato. Il mio camcohob@mail.ru grazie in anticipo. c
OK! Lo farò domani.
 
snail09:
OK! Lo farò domani.

Grazie, non vedo l'ora.
 
 

Ciao, puoi scrivere una freccia con un segnale acustico che colleghi i due cf?

condizioni del segnale:

1) in un timeframe superiore (per esempio n1) AO incrocia lo zero, dopo di che si cerca la seconda condizione

2) su 2 inferiori (per esempio m5) AO incrocia lo zero nella stessa direzione (è logico che prima debba andare nella direzione opposta perché nel momento in cui su n1 AO incrocia lo zero verso l'alto, su m5 AO sarà già sopra lo zero, cioè mi interessa un nuovo incrocio dopo un rollback)

 

Membri del Message Board, ho una domanda.

I grafici Renko e il loro uso sono stati discussi qui più di una volta. Ho usato per molto tempo un Expert Advisor da codebase che costruisce correttamente le barre Renko, ma il problema è che le disegna un po' male sull'inversione. Guarda, li disegna così:

e vorrei che ci fosse un altro bar come questo:


Dimmi cosa cambiare nel codice. Per quanto ho capito, dovremmo cambiare qualcosa nei cicli while in questo frammento di codice:

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++;
            }
 
Ciao, aiutami a trovare un semplice EA. Piazza un ordine pendente a una data distanza dal prezzo in un certo momento con tp e sl. Per esempio: alle 23:55 piazza un ordine ad una distanza di 10 pip dal prezzo corrente. Posiziona immediatamente tp=10 pip e sl=16 pip. Inoltre: se un ordine non è scattato, viene rimosso alle 24:00; piazza ordini unidirezionali su diversi lati del prezzo. Forse qualcuno può scrivere, almeno per le condizioni di base o consigliarmi dove cercare? Non ho trovato nulla di simile in Code Base. Grazie in anticipo per qualsiasi aiuto.
 
Per favore aiutatemi ad armeggiare con questo. Vorrei che l'indicatore desse un segnale acustico quando c'è un segnale per comprare e vendere, ma non funziona! Grazie in anticipo)

//+------------------------------------------------------------------+
//| SilverTrend_Signal.mq4
//| Ramdass - Solo conversione
//+------------------------------------------------------------------+
#property copyright "SilverTrend riscritto da CrazyChart".
#proprietà link "http://viac.ru/"

#proprietà indicator_chart_window
#proprietà indicator_buffers 2
#property indicator_color1 Aqua
#proprietà indicatore_colore2 Viola

//---- parametri di ingresso
extern int RISK=3;
extern inttern CountBars=350;
extern bool SoundAlert=true;
int SSP=9;

//---- buffer
doppio val1[];
doppio val2[];

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato
//+------------------------------------------------------------------+
int init()
{
stringa short_name;
//---- linea di indicazione
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,234);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| SilverTrend_Signal |
//+------------------------------------------------------------------+
int start()
{
se (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+SSP);
SetIndexDrawBegin(1,Bars-CountBars+SSP);
int i,shift,counted_bars=IndicatorCounted();
int i1,i2,K;
doppio Range, AvgRange, smin, smax, SsMax, SsMin, prezzo;
bool uptrend,old;
//----

se(Bars<=SSP+1) return(0);
//---- zero iniziale
se(barre contate<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;
per (shift = CountBars-SSP; shift>=0; shift--)
{

Gamma=0;
AvgRange=0;
for (i1=shift; i1<=shift+SSP; i1++)
{AvgRange=AvgRange+MathAbs(High[i1]-Low[i1];
}
Range=AvgRange/(SSP+1);

SsMax=High[shift]; SsMin=Low[shift];
for (i2=shift;i2<=shift+SSP-1;i2++)
{
prezzo=Alto[i2];
if(SsMax<prezzo) SsMax=prezzo;
prezzo=Basso[i2];
se(SsMin>=prezzo) SsMin=prezzo;
}

smin = SsMin+(SsMax-SsMin)*K/100;
smax = SsMax-(SsMax-SsMin)*K/100;
val1[shift]=0;
val2[shift]=0;
se (Close[shift]<smin)
{
uptrend = falso;
}
se (Close[shift]>smax)
{
uptrend = vero;
}
if (uptrend!=old && uptrend==true) {val1[shift]=Low[shift]-Range*0.5;}
if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*0.5;}
old=uptrend;
}
ritorno(0);
}
//+------------------------------------------------------------------+
void SendAlert(string txt) {
se (Time[0] != tt) {
se (SoundAlert) {
se (txt == "buy") Alert("Trend Long " + Symbol() + ", " + Period());
se (txt == "sell") Alert("Trend Short " + Symbol() + ", " + Period());
}
tt = Tempo[0];
}
}
 
Scriverò un EA gratis su un'interessante strategia di indicatori senza martingala. ToR in privato o su email mqlskeptik@yandex.ua
 
Ciao a tutti, potreste aiutarmi, vorrei fare un indicatore di volume migliore. Per mostrare quanto viene comprato e venduto su una candela di volume. E quando si passa sopra il volume si apre una finestra di dati. Faccio trading in base al volume e mi aiuterebbe molto. Immagino che sia qualcosa del genere. Grazie in anticipo!
 

Questo thread viene chiuso perché non ha adempiuto alla sua funzione per molto tempo.

Si prega di scrivere all'autore del thread(https://www.mql5.com/ru/users/kubodel/) il più presto possibile.

Tutti i nuovi messaggi saranno cancellati senza preavviso.

Motivazione: