[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 141

 

Das war's, es hat funktioniert. Das scheint daran zu liegen, dass ich einen Puffer eingestellt habe.

#Eigenschaft indicator_buffers 1

 

Sie haben alles richtig gemacht. Ich habe es überprüft - es wird so ausgegeben, wie es sollte (ich kann Ihnen einen Screenshot geben).

Ich habe gerade noch etwas hinzugefügt

#property  indicator_separate_window
#property  indicator_buffers 2
 

Помогите, плиз!!!

double Lots_simb[3];


if(( Lots_simb[0]*2)< Lots_simb[2]) // почему истина ?
{

Print("Lots_simb[0]*2=", Lots_simb[0]*2,"Lots_simb[2]=", Lots_simb[2]);
Open_Buy_otl( symb[0],( Lots_simb[2]/2- Lots_simb[0]));

return;

}

2009.07.10 06:57:09 newseason GBPJPY, M30: Lots_simb[0]*2=8.4  Lots_simb[2]=8.4
 
Meine Herren des Wissens, wenn im Protokoll des Testers steht "Funktion im Testmodus nicht erlaubt", woher weiß ich dann, welche Funktion nicht erlaubt ist?
 
Dimoncheg писал(а) >>
Meine Herren, wenn im Journal des Testers steht "Funktion ist im Testmodus nicht erlaubt", woher weiß ich dann, welche Funktion nicht erlaubt ist?

Merkmale und Grenzen des Testens von Handelsstrategien in MetaTrader 4".

 

Hallo, ich brauche dringend Hilfe! Ich möchte einen EA erstellen, der auf einem Indikator basiert. Am Anfang stehen, wie bei jedem Indikator, diese Linien:

SetIndexPuffer(0,ExtBullPuffer);
SetIndexBuffer(1,ExtBull1Buffer);
SetIndexBuffer(2,ExtBull2Buffer);
SetIndexBuffer(3,ExtBull3Buffer);
SetIndexBuffer(4,ExtBull4Buffer);
SetIndexBuffer(5,ExtBull5Buffer);
SetIndexBuffer(6,ExtBull6Buffer);
SetIndexBuffer(7,ExtBull7Buffer);
Dann kommt der Hauptteil des Programms (int start()...), wo die Variablen ExtBullBuffer berechnet werden... Ich möchte einen EA zu machen, so dass ich nicht SetIndexBuffer brauchen, aber wenn ich es zu entfernen, während der Prüfung Variablen ExtBullBuffer nicht berechnet werden (für alle timeframe der Prüfung, für alle timeframes es erzeugt 0, obwohl es nicht wahr ist)... Können Sie mir einen Rat geben, was ich tun soll? Ich danke Ihnen.

 
Levchik >> :

Hallo, ich brauche dringend Hilfe! Ich möchte einen EA erstellen, der auf einem Indikator basiert. Am Anfang stehen, wie bei jedem Indikator, diese Linien:

SetIndexPuffer(0,ExtBullPuffer);
Dann kommt der Hauptteil des Programms (int start()...), der die Variablen ExtBullBuffer... berechnet. Ich möchte einen EA zu machen, so dass ich nicht SetIndexBuffer brauchen, aber wenn ich es zu entfernen, während der Prüfung Variablen ExtBullBuffer nicht berechnet werden (für alle timeframe der Prüfung, für alle timeframes es erzeugt 0, obwohl es nicht wahr ist)... Können Sie mir einen Rat geben, was ich tun soll? >> Danke.

Bei Indikatorpuffern wird der Puffer automatisch initialisiert, sobald Sie den Puffer als Indikator (nicht als Hilfspuffer) deklarieren,

in anderen Programmen (nicht Indikatoren) müssen die Puffer mit der Funktion ArrayResize(ExtBullBuffer,Bars) initialisiert werden;

(wenn der Puffer nicht ausdrücklich benannt ist double ExtBullBuffer[1000]; )

Und die Initialisierung sollte in der Funktion erfolgen, die dem Puffer Werte zuweisen soll. In Ihrem Fall, in int start().

 

Hallo zusammen. Können Sie mir sagen, wie man den Code des Indikators zu beheben, so dass der Signalton nicht einmal, sondern 10 Mal ausgegeben wird, oder wie es ein Indikator, wo das Signal bis zum nächsten Candlestick erscheint. Das heißt, das Signal geht die ganze Zeit die Kerze, in der es aufgetreten ist. Ich habe ein gutes Signal, aber nur einmal... Leider kann ich es in der Nacht nicht hören(((( Ich danke Ihnen im Voraus für Ihr Feedback.

#property indicator_chart_window
#Eigenschaft indicator_buffers 5
#property indicator_color1 Gelb
#Eigenschaft indicator_width1 2
#property indicator_color2 SkyBlue
#property indicator_width2 2
#property indicator_color3 Tomate
#Eigenschaft indicator_width3 2

#Eigenschaft indicator_color4 Blau
#property indicator_color5 Rot
#Eigenschaft indicator_width4 1
#Eigenschaft indicator_width5 1

//---- Eingabeparameter
extern int Preis = 0; //Preis anwenden(0-Schluss;1-Eröffnung;2-Hoch;3-Tief;4-Mittelpreis;5-Typischer Preis;6-Gewichteter Schluss)
extern int Length = 15; //Periode von NonLagMA
extern inttern Displace = 0; //DispLace oder Shift
extern double PctFilter = 0; //Dynamischer Filter in Dezimalzahlen
extern string note1 ="turn on Color: ln=1 ln&dot=2; off=0";
extern int Color = 2; //Umschaltung des Farbmodus (1-farbig)
extern int ColorBarBack = 0; //Bar back für Farbmodus
extern double Abweichung = 0; //Abweichung nach oben/unten
extern string note2 ="turn on = 1; turn off = 0";
extern int AlertMode = 0; //box Alert Schalter (0-off,1-on)
extern int WarningMode = 0; //Tonwarnung schalten(0-aus,1-ein)
extern int SendEmail = 0;
externe Zeichenfolge soundfile = "news.wav";
//---- Indikatorpuffer
double MABuffer[];
double UpBuffer[];
double DnBuffer[];
double trend[];
double Del[];
double AvgDel[];
double updbuffer[];
double dndbuffer[];

double alfa[];
int i, Phase, Len, Zyklus=4;
double Coeff, beta, t, Summe, Gewicht, g;
double pi = 3,1415926535;
bool UpTrendAlert=false, DownTrendAlert=false;
//+------------------------------------------------------------------+
//| Benutzerdefinierte Initialisierungsfunktion für Indikatoren |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_LINE);
SetIndexPuffer(0,MABuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexPuffer(1,UpPuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,DnBuffer);

SetIndexBuffer(5,trend);
SetIndexBuffer(6,Del);
SetIndexBuffer(7,AvgDel);


SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,updbuffer); SetIndexEmptyValue(3,EMPTY_VALUE);
SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,159); SetIndexBuffer(4,dndbuffer); SetIndexEmptyValue(4,EMPTY_VALUE);


string kurz_name;
//---- Indikatorzeile

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- Name für das Datenfenster und die Bezeichnung des Unterfensters des Indikators
short_name="NonLagMA("+Länge+")";
IndicatorShortName(short_name);
SetIndexLabel(0, "NonLagMA");
SetIndexLabel(1, "Nach oben");
SetIndexLabel(2, "Dn");
//----
SetIndexShift(0,Displace);
SetIndexShift(1,Displace);
SetIndexShift(2,Displace);
SetIndexShift(3,Displace);
SetIndexShift(4,Displace);

SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexEmptyValue(2,EMPTY_VALUE);

SetIndexDrawBegin(0,Länge*Zyklus+Länge+1);
SetIndexDrawBegin(1,Länge*Zyklus+Länge+1);
SetIndexDrawBegin(2,Länge*Zyklus+Länge+1);
//----

Koeff = 3*pi;
Phase = Länge-1;
Len = Länge*4 + Phase;
ArrayResize(alfa,Len);
Gewicht=0;

for (i=0;i<Len-1;i++)
{
wenn (i<=Phase-1) t = 1,0*i/(Phase-1);
sonst t = 1,0 + (i-Phase+1)*(2,0*Zyklus-1,0)/(Zyklus*Länge-1,0);
beta = MathCos(pi*t);
g = 1,0/(Coeff*t+1);
wenn (t <= 0,5 ) g = 1;
alfa[i] = g * beta;
Gewicht += alfa[i];
}

zurück(0);
}

//+------------------------------------------------------------------+
//| NonLagMA_v7.1 |
//+------------------------------------------------------------------+
int start()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
doppelter Preis;
if ( gezählte_Balken > 0 ) limit=Balken-gezählte_Balken;
if ( counted_bars < 0 ) return(0);
if ( counted_bars ==0 ) limit=Bars-Len-1;
wenn ( gezählte_Balken < 1 )

for(i=1;i<Länge*Zyklus+Länge;i++)
{
MABuffer[Bars-i]=0;
UpBuffer[Bars-i]=0;
DnBuffer[Bars-i]=0;
}

for(shift=limit;shift>=0;shift--)
{
Summe = 0;
for (i=0;i<=Len-1;i++)
{
Preis = iMA(NULL,0,1,0,3,Preis,i+Verschiebung);
Summe += alfa[i]*Preis;

}

if (Gewicht > 0) MABuffer[shift] = (1.0+Abweichung/100)*Summe/Gewicht;


wenn (PctFilter>0)
{
Del[shift] = MathAbs(MABuffer[shift] - MABuffer[shift+1]);

double sumdel=0;
for (i=0;i<=Length-1;i++) sumdel = sumdel+Del[shift+i];
AvgDel[shift] = sumdel/Length;

double sumpow = 0;
for (i=0;i<=Length-1;i++) sumpow+=MathPow(Del[shift+i]-AvgDel[shift+i],2);
double StdDev = MathSqrt(sumpow/Length);

double Filter = PctFilter * StdDev;

if( MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter ) MABuffer[shift]=MABuffer[shift+1];
}
sonst
Filter=0;

wenn (Farbe>0)
{
trend[shift]=trend[shift+1];
wenn (MABuffer[shift]-MABuffer[shift+1] > Filter) trend[shift]= 1;
wenn (MABuffer[shift+1]-MABuffer[shift] > Filter) trend[shift]=-1;

updbuffer[shift] = EMPTY_VALUE; dndbuffer[shift] = EMPTY_VALUE;

if (trend[shift]>0)
{
UpBuffer[shift] = MABuffer[shift];
if (trend[shift+ColorBarBack]<0) UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
DnBuffer[shift] = EMPTY_VALUE;
if (trend[shift+1]<0&Color>1) updbuffer[shift]= MABuffer[shift];
}
if (trend[shift]<0)
{
DnBuffer[shift] = MABuffer[shift];
if (trend[shift+ColorBarBack]>0) DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
UpBuffer[shift] = EMPTY_VALUE;
if (trend[shift+1]>0&Color>1) dndbuffer[shift]= MABuffer[shift];

}
}
}
//----------
string Nachricht;

if ( trend[2]<0 && trend[1]>0 && Volume[0]>1 && !UpTrendAlert)
{
Message = ""+Symbol()+" M "+Periode()+" NonLagMa Signal für BUY";
if ( AlertMode>0 ) Alert (Message);
if ( WarningMode>0 ) PlaySound(soundfile);
if ( SendEmail>0 ) SendMail("NonLagMa", "UpTrendAlert");
UpTrendAlert=true; DownTrendAlert=false;
}

if ( trend[2]>0 && trend[1]<0 && Volume[0]>1 && !DownTrendAlert)
{
Message = ""+Symbol()+" M "+Periode()+" NonLagMa Signal für SELL";
if ( AlertMode>0 ) Alert (Message);
if ( WarningMode>0 ) PlaySound(soundfile);
if ( SendEmail>0 ) SendMail("NonLagMa", "DownTrendAlert");
DownTrendAlert=true; UpTrendAlert=false;
}
//----
zurück(0);
}

 
E_mc2 >> :

Hallo zusammen. Bitte beraten Sie, wie man den Code indyuka, dass der Signalton nicht angezeigt wird einmal, und dann 10 mal, oder wie es indyuki, wo die Signalisierung, bis die nächste Kerze erscheint beheben. Das heißt, das Signal geht die ganze Zeit die Kerze, in der es aufgetreten ist. Ich habe ein gutes Signal, aber nur einmal... Leider kann ich manchmal nicht hören, es in der Nacht(((( Ich danke Ihnen im Voraus, die helfen werden.

Wozu brauchen Sie es? Erzählen Sie mir mehr darüber, vielleicht gibt es eine Lösung und Sie wissen nicht, wie Sie die richtigen Fragen stellen können, damit die Leute es verstehen.

Auf das, was Sie geschrieben haben, habe ich zwei Lösungen, Sie was, zwei auf einmal zu lange zu schreiben :)

..

Übrigens ist es besser, solche langen Codes als Datei anzuhängen.

Und für den Code gibt es eine spezielle Schaltfläche SRC.

Grund der Beschwerde: