[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 297

 
hoz:


Es gibt kein Ideal! Ich beobachte die Leute, die schreiben, sozusagen als allgemeine Perspektive. Manchmal finde ich einige Tricks, die ich von anderen lernen kann. Manchmal sehe ich, dass der Code überhaupt nicht lesbar ist. Wie zum Beispiel tarasBY's. So sehr ich mich auch anstrenge, es lässt sich nicht lesen. Ich kann sie in klaren Abschnitten lesen, und dann - bumm - kann ich nichts mehr verstehen. Und so ist es an vielen Orten.

Ich bin ein Freund, der mich gebeten hat, zu dekompilieren, und es ist leichter zu verstehen als die Codes von tarasBY. Vielleicht ist das ganz normal, aber ich bezweifle, dass viele Downloader sie verstehen werden. Wer zu schlau ist, sie zu verstehen, wird sie nicht herunterladen... Dann stellt sich die Frage, warum sie dort gepostet werden :)

Ich benutze auch nichts von ihm! Warum sollte man etwas blindlings tun, man muss sich darüber im Klaren sein, was man will. Und die Veröffentlichung dient der Werbung, und wenn alles klar ist, werden sie sie herunterladen und nichts bestellen.
 
tara:
Ich messe meine Zeit nach der Greenwich Mean Time.
Meine Zeit ist eine Stunde kürzer als die des Servers und ich lebe immer noch in Mitteleuropa. Und Sie sollten drei Stunden mehr Zeit haben, wenn der Server auf GMT eingestellt ist. Ich gehe jetzt ins Bett. Ich wünsche Ihnen eine gute Nacht ohne Explosionen!
 

Ich schlafe jetzt. Gute Nacht.

Wie sagt man in Katalonien?

 
Buenas noches! Pero ahora ya es madrugada! Aber es ist schon spät in der Nacht!
 
GaryKa:
Überhaupt nicht
Ja, es ist das Verhältnis von zwei natürlichen Logarithmen. Schauen Sie sich nun die Formel aus "Substitution der Basis des Logarithmus" an. Das Ergebnis ist also, dass dieser Ausdruck
entspricht dem dezimalen Logarithmus für bd_LOTSTEP. In MQL gibt es keine separate Funktion für den dezimalen Logarithmus, daher wird diese Umwandlung verwendet.


Das ist es, was ich sagen wollte. Der Code meiner Sprache... Ich denke, entweder hat der Programmierer keine Angst vor Mathematik oder es ist eine Art Schutz vor dem Lesen von Code (nur ein Scherz). Ich weiß nicht, meine persönliche Meinung ist, dass Mathematik den Algorithmus genauso vereinfacht wie switch...case anstelle von if.
 
rigonich:

SetVLine() anzeigen;
 
Hallo, ich habe versucht zu verstehen, wie man benutzerdefinierte Indikatoren in EA einfügen. Kompiliert gut, aber schreibt absolut

falsche Daten, bitte geben Sie an, wo der Fehler ist.




Ich füge den gesamten Code ein, außer dem "Copyright"

extern int PeriodP=12;
extern int TimeFrame=0;
double P_up0,P_up1,FrApPrise;
//+------------------------------------------------------------------+
//| Experteninitialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit() xml-ph-0016@deepl.in
}
//+------------------------------------------------------------------+
//| Expertenstartfunktion |
//+------------------------------------------------------------------+
int start()
{
//----

P_up0=iCustom(Symbol(),Zeitraum(), "Preiskanal",ZeitraumP,0,0)
P_up1=iCustom(Symbol(),Period(), "rezerv-xrust",FrApPrise,0,0);
{Comment("show price channel=",P_up0,"\n", "show xrust=",P_up1);}
//----
return(0);
}



used two indicators

1)https://www.mql5.com/de/code/8908

Preiskanal.mq4

2)https://www.mql5.com/ru/code/8318

Fractal_Level_Xrust_V2.mq4

bitte helfen Sie, warum 1 zeigt und das andere nicht will?
 
gyfto:

Das ist es, was ich sagen wollte. Bedingt meine Sprache... Ich denke, entweder hat der Programmierer keine Angst vor Mathematik oder es ist eine Art Schutz vor dem Lesen von Code (nur ein Scherz). Ich weiß nicht, meine persönliche Meinung ist, dass Mathematik den Algorithmus genauso vereinfacht wie switch...case anstelle von if.

Dieser Kodex weist einen Fehler auf. Hier, aus dem Zusammenhang gerissen:


Der springende Punkt ist, dass der Ausdruck

MathCeil(MathAbs(MathLog( 0.25 )/MathLog(10))) = 1

Daher wird der Wert des Loses auf eine Dezimalstelle gerundet.


Aber lesen Sie weiter, vielleicht hilft es ja.

 

Eine kleine Ergänzung zur Beschreibung meiner Frage: Ich habe den Crunch-Indikator neu erstellt, hier ist der Code

#property copyright "#Copyright © 2008, XrustSolution.#"
#property link "#xrust.ucoz.net#"

#property indicator_chart_window
extern int TimeFrame=0;//Wenn=0, dann der aktuelle


extern string FrApNam="Ap";//Name der Linie, die dem nach oben gerichteten Fraktal entspricht.
extern string FrDnNam="Dn";//Name der Linie, die dem Fraktal nach unten entspricht

//-----------------------------------------------------------------------------+
double FrPrise;
double FrApPrise=0,FrDnPrise=0;

//+----------------------------------------------------------------------------+
void init(){

if(TimeFrame==0){TimeFrame=Period();}
IndicatorShortName("Factal_Level_Xrust "+TimeFrame);
FrApNam=StringConcatenate(FrApNam,TimeFrame);
FrDnNam=StringConcatenate(FrDnNam,TimeFrame);
return;}
void deinit(){
ObjectDelete(FrDnNam);
ObjectDelete(FrApNam);
Kommentar(" ");
return;}
//+----------------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int-Grenze;
double tmp;
int i, j,k;
if(counted_bars<0) return(-1);
if(gezählte_Balken>0) gezählte_Balken--;
limit=Balken-gezählt_Balken;
//-----------------------------------------------------------------------------+

LineAp();
LineDn();
string FAP=DoubleToStr((FrApPrise),Digits);
string FDP=DoubleToStr((FrDnPrise),Digits);
int diap=MathRound((FrApPrise-FrDnPrise)/Point);
{Kommentar("TimeFrame="+TimeFrame+
"\nApPrise111 ="+FAP+
"\nDnPrise ="+FDP+
"\nFractal Channel ="
+diap+"Punkt");}

zurück(0);
}
//-----------------------------------------------------------------------------+
// sucht die horizontale Linie nach Namen und zeichnet sie neu, wenn sich der Preis geändert hat |
//-----------------------------------------------------------------------------+
void LineDn(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
//Kommentar(FrPrise);
if(ObjectFind(FrDnNam)==0){
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrDnPrise=FrPrise;
ObjectDelete(FrDnNam);

WindowRedraw();
return;}
//-----------------------------------------------------------------------------+
// sucht nach einer horizontalen Linie nach Name, zeichnet neu, wenn sich der Preis geändert hat |
//-----------------------------------------------------------------------------+
void LineAp(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
if(ObjectFind(FrApNam)==0){
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrApPrise=FrPrise;
ObjectDelete(FrApNam);

WindowRedraw();
return;}
//-----------------------------------------------------------------------------+
//Kim Respekt und Achtung !!! |
//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 07.10.2006 |
//| Beschreibung : Suche nach dem nächstgelegenen Fraktal. Gibt das Preisniveau zurück. |
//+----------------------------------------------------------------------------+
Parameter: //|
//| sy - Instrumentenname ("" oder NULL - aktuelles Symbol) |
//| tf - Zeitrahmen ( 0 - aktueller TF) |
//| Modus - fraktaler Typ (MODE_LOWER|MODE_UPPER) |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
if (sy=="" || sy=="0") sy=Symbol();
double f=0;
int d=MarketInfo(sy, MODE_DIGITS), s;
if (d==0) if (StringFind(sy, "JPY"<0) d=4; sonst d=2;

for (s=2; s<100; s++) {
f=iFractals(sy, tf, mode, s);
if (f!=0) return(NormalizeDouble(f, d))
}
Print("FindNearFractal(): Fraktal nicht gefunden");
zurück(0);
}

Ich brauche keine Linien auf dem Diagramm, ich brauche nur zwei Zahlen (eine von jedem dieser Geist-Indikatoren).

 
palomnik:

Eine kleine Ergänzung zur Beschreibung meiner Frage: Ich habe den Crunch-Indikator überarbeitet, hier ist der Code

Wenn Sie eine Antwort wollen, sollten Sie etwas mehr Respekt vor den Leuten haben, die Ihr Geschreibsel lesen.

Der Code sollte über die SRC-Schaltfläche eingefügt werden - sie befindet sich über dem Bearbeitungsfeld Ihres Beitrags neben anderen Formatierungswerkzeugen.