[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 308
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Könnte nützlich sein. Das funktioniert gut!
Drücken Sie im Meta-Editor F5 zum Kompilieren.
Wichtig: Der Meta-Editor muss aus demselben Ordner wie das Terminal gestartet werden.
Alex, bist du meinetwegen hier? Ich bin neu bei mql4 und versuche, diesen Code zu verstehen.
#property indicator_chart_window
#Eigenschaft indicator_buffers 2
extern int TimeFrame=0;//Wenn=0, dann der aktuelle
extern int Distanse=0;//Abstand der Linie vom Fraktal in Punkten
extern string FrApNam="Ap";//Name der Linie, die dem Fraktal nach oben entspricht.
extern string FrDnNam="Dn";//Name der Linie entsprechend dem Fraktal nach unten.
extern color ClAp=Blue;//color line entspricht dem Fraktal nach oben.
extern color ClDn=Red;//Farbe der Linie gemäß Fractal Down.
extern bool comment=true;//Erlaubnis zum Kommentieren
//-----------------------------------------------------------------------------+
double FrPrise,znach1,znach2;
double FrApPrise=0,FrDnPrise=0;
double ind_buffer1[];
double ind_buffer2[];
//+----------------------------------------------------------------------------+
void init()
{if(TimeFrame==0){TimeFrame=Period();}
SetIndexPuffer(0,ind_buffer1);//Puffer
SetIndexPuffer(1,ind_buffer2);
return;}
void deinit(){
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();
double FAP=NormalizeDouble((FrApPrise-Distanse*Point),5);//Normalize
double FDP=NormalizeDouble((FrDnPrise+Distanse*Point),5);
int diap=MathRound((FrApPrise-FrDnPrise)/Point);
ind_buffer1[0]=FAP;
ind_buffer2[1]=FDP;
Comment("TimeFrame="+TimeFrame+
"\nApPrise =",FAP,
"\nDnPrise =",FDP,
"nFractal Channel ="
,diap+"Punkt");
zurück(0);
}
//-----------------------------------------------------------------------------+
// sucht nach einer horizontalen Linie nach Namen, zeichnet neu, wenn sich der Preis ändert |
//-----------------------------------------------------------------------------+
void LineDn(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise-Distance*Point,MarketInfo(Symbol(),MODE_DIGITS));
//Kommentar(FrPrise);
if(ObjectFind(FrDnNam)==0){
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrDnPrise=FrPrise;
ObjectDelete(FrDnNam);
SetHLine(ClDn,FrDnNam,FrDnPrise,0,1);
WindowRedraw();
return;}
//-----------------------------------------------------------------------------+
// sucht eine horizontale Linie nach Namen, zeichnet sie neu, wenn sich der Preis geändert hat |
//-----------------------------------------------------------------------------+
void LineAp(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS));
if(ObjectFind(FrApNam)==0){
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrApPrise=FrPrise;
ObjectDelete(FrApNam);
SetHLine(ClAp,FrApNam,FrApPrise,0,1);
WindowRedraw();
return;}
//-----------------------------------------------------------------------------+
//| Beschreibung : Suche nach dem nächstgelegenen Fraktal. Gibt ein 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);
}
//+----------------------------------------------------------------------------+
//| Beschreibung : Objekt OBJ_HLINE horizontale Linie setzen |
//+----------------------------------------------------------------------------+
Parameter: //|
//| cl - Linienfarbe |
//| nm - Name ("" - Eröffnungszeit des aktuellen Balkens) |
//| p1 - Preisniveau (0 - Gebot) |
//| st - Linienart (0 - einfache Linie) |
//| wd - Linienbreite (0 - Standard) |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Zeit[0], 0);
if (p1<=0) p1=Bid;
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0;)
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
Es ist notwendig, einen Expert Advisor für diesen Indikator zu schreiben, der den oberen und unteren Preis auf den Zeitrahmen М1 und М5 passieren würde.
Alex, bist du meinetwegen hier? Ich bin neu bei mql4 und versuche, diesen Code zu verstehen.
Mister, ist jemand verstehen, wie man Werte von einem Indikator zu einem EA übergeben? Ich brauche Hilfe, ich verstehe es selbst nicht, nur einen Moment und dann ist es vorbei. https://forum.mql4.com/ru/52892/page308 palomnik 23.04.2013 09:56
1. Über eine globale Variable.
2. Über Datei.
3. über iCustom().
4. Über die globalen Grafikvariablen.
5. Kartierung. Sie können Daten von einem Terminal zu einem anderen Terminal übertragen. Oder in einem Terminal, um Daten von einem Fenster zu einem anderen Fenster zu übertragen, ohne die globalen Variablen von MT4 zu begrenzen.