Fragen Sie! - Seite 151

 

MetaTrader und Orderbuch

Ok, ich muss sagen, die vordefinierten Variablen "Ask" und "Bid" speichern die eigentlich besten Orders... Aber was ist mit den anderen Levels und Lots des Orderbuchs? Kann ich diese Daten trotzdem in meinem Code verwenden?

Bitte helfen Sie mir, ich habe schon überall im Web gesucht, aber keine Antwort gefunden.

prota

 

Eine schnelle Frage...

Alter, wenn ich das fettgedruckte mache, dann muss ich das unterstrichene nicht machen, richtig?

if(Ask>=Line1)

{

posisi=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slipage,0,0, "OneLineEA ver 1.0",Megic,0,Green);

if(OrderSelect(posisi,SELECT_BY_TICKET)==true)

{

posisi=OrderTicket();

}

}

 

Bitte helfen Sie mir

HI codersguru

Vielen Dank für Ihre Hilfe

BITTE KÖNNEN SIE DIESEN STATMENT UND DIE BEDEUTUNG ERKLÄREN

for(int shift = Bars-10; shift >= 0; shift--)

{

ExtMapBuffer1[shift] = ma[shift];

ExtMapBuffer2[shift] = ma[shift];

//Drucken (ma[shift]);

if (ma[shift] > ma[shift+1])

{

ExtMapBuffer1[shift] = EMPTY_VALUE;

ExtMapBuffer2[shift+1] = ma[shift+1];

}

else if (ma[shift] < ma[shift+1])

{

ExtMapBuffer2[shift] = EMPTY_VALUE;

ExtMapBuffer1[shift+1] = ma[shift+1];

}

IN DIESEM EA

//---- Indikatoreinstellungen

#Eigenschaft indicator_chart_window

#Eigenschaft indicator_buffers 2

#Eigenschaft indicator_color1 Kalk

#Eigenschaft indicator_color2 Rot

//---- Puffer

double ExtMapBuffer1[];

double ExtMapBuffer2[],ma[];

extern int MAType = 1;

extern int MAPeriod = 34;

extern int MAShift = 0;

extern int PriceType=0;

//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init()

{

//---- 2 zusätzliche Puffer werden für die Zählung verwendet.

IndicatorBuffers(5);

//---- Zeichnungseinstellungen

SetIndexPuffer(0,ExtMapPuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexBuffer(2,ma);

SetIndexStyle(0,DRAW_LINE,0,2);

SetIndexStyle(1,DRAW_LINE,0,2);

//---- Initialisierung abgeschlossen

return(0);

}

int start()

{

for(int i = Bars-10; i >= 0; i--)

{

ma=iMA(NULL,0,MAPeriod,MAShift,MAType,PriceType,i);

}

for(int shift = Bars-10; shift >= 0; shift--)

{

ExtMapBuffer1[shift] = ma[shift];

ExtMapBuffer2[shift] = ma[shift];

//Drucken (ma[shift]);

if (ma[shift] > ma[shift+1])

{

ExtMapBuffer1[shift] = EMPTY_VALUE;

ExtMapBuffer2[shift+1] = ma[shift+1];

}

else if (ma[shift] < ma[shift+1])

{

ExtMapBuffer2[shift] = EMPTY_VALUE;

ExtMapBuffer1[shift+1] = ma[shift+1];

}

}

return(0);

}

//+------------------------------------------------------------------+

Dankeschön

 

Es handelt sich nicht um EA, sondern um den Indikator, der Ihnen anzeigt, wann der Indikator"Gleitender Durchschnitt" nach oben oder unten geht.

Der Code, den Sie benötigen, berechnet nur die letzten zehn Balken.

Legen Sie ihn in das Verzeichnis /indicators und starten Sie Ihr Terminal neu.

 

der Unterschied

Hallo zusammen

kann mir jemand helfen

was ist der Unterschied zwischen EMA5c und EMA5p

was der Mittelwert (EMA5c>EMA10c && EMA5pEMA10c))

double EMA5c = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE, 0 );

double EMA10c = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,0);

double EMA5p = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE, 1 );

double EMA10p = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,1);

 

Die Namen sind nur Variablennamen und haben als solche keine wirkliche Bedeutung. Programmierer wählen Variablennamen in der Regel so, dass es selbsterklärend ist, welche Art von Wert sie enthalten sollen. Wenn man sich diese beiden Namen ansieht, scheint es, als hätte der Programmierer beschlossen, das Suffix c an die aktuelle Barrenvariable und p an die vorherige Barrenvariable anzuhängen.

Lux

 

Hey Mann habe eine Frage, ich habe einen Indikator, dass ein Freund gab mir, dass ich für ein paar Wochen jetzt demoing und liebe es. Kurze Erklärung, ein Pfeil wird auf meinen Charts zeigen mir sagen, in welche Richtung die Bewegung zu spielen. Ich benutze ihn auf 30m-Charts, damit er nicht zu oft auftaucht. Gibt es eine Möglichkeit, dass, wenn der Pfeil für die Long-Position angezeigt wird, meine Short-Position geschlossen wird und ich Long gehe, oder wenn es keine Short-Position gibt, einfach Long gehe. Und umgekehrt mit dem Short-Signal?

 

Ich habe keine Schaltfläche zum Bearbeiten gesehen, also hier ist der Code. Es sieht nicht so aus, als ob es zu schwierig wäre, einfach den Kauf- oder Verkaufscode hinzuzufügen. Dies ist der Code für den Zickzackkurs. Frei ind.

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

//---- indicator parameters

extern int ExtDepth=12;

extern int ExtDeviation=5;

extern int ExtBackstep=3;

//---- indicator buffers

double ZigzagBuffer[];

double HighMapBuffer[];

double LowMapBuffer[];

int level=3; // recounting's depth

bool downloadhistory=false;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

IndicatorBuffers(3);

//---- drawing settings

SetIndexStyle(0,DRAW_SECTION);

//---- indicator buffers mapping

SetIndexBuffer(0,ZigzagBuffer);

SetIndexBuffer(1,HighMapBuffer);

SetIndexBuffer(2,LowMapBuffer);

SetIndexEmptyValue(0,0.0);

//---- indicator short name

IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");

//---- initialization done

return(0);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int start()

{

int i, counted_bars = IndicatorCounted();

int limit,counterZ,whatlookfor;

int shift,back,lasthighpos,lastlowpos;

double val,res;

double curlow,curhigh,lasthigh,lastlow;

if (counted_bars==0 && downloadhistory) // history was downloaded

{

ArrayInitialize(ZigzagBuffer,0.0);

ArrayInitialize(HighMapBuffer,0.0);

ArrayInitialize(LowMapBuffer,0.0);

}

if (counted_bars==0)

{

limit=Bars-ExtDepth;

downloadhistory=true;

}

if (counted_bars>0)

{

while (counterZ<level && i<100)

{

res=ZigzagBuffer;

if (res!=0) counterZ++;

i++;

}

i--;

limit=i;

if (LowMapBuffer!=0)

{

curlow=LowMapBuffer;

whatlookfor=1;

}

else

{

curhigh=HighMapBuffer;

whatlookfor=-1;

}

for (i=limit-1;i>=0;i--)

{

ZigzagBuffer=0.0;

LowMapBuffer=0.0;

HighMapBuffer=0.0;

}

}

for(shift=limit; shift>=0; shift--)

{

val=Low;

if(val==lastlow) val=0.0;

else

{

lastlow=val;

if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;

else

{

for(back=1; back<=ExtBackstep; back++)

{

res=LowMapBuffer[shift+back];

if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;

}

}

}

if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0;

//--- high

val=High;

if(val==lasthigh) val=0.0;

else

{

lasthigh=val;

if((val-High[shift])>(ExtDeviation*Point)) val=0.0;

else

{

for(back=1; back<=ExtBackstep; back++)

{

res=HighMapBuffer[shift+back];

if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;

}

}

}

if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0;

}

// final cutting

if (whatlookfor==0)

{

lastlow=0;

lasthigh=0;

}

else

{

lastlow=curlow;

lasthigh=curhigh;

}

for (shift=limit;shift>=0;shift--)

{

res=0.0;

switch(whatlookfor)

{

case 0: // look for peak or lawn

if (lastlow==0 && lasthigh==0)

{

if (HighMapBuffer[shift]!=0)

{

lasthigh=High[shift];

lasthighpos=shift;

whatlookfor=-1;

ZigzagBuffer[shift]=lasthigh;

res=1;

}

if (LowMapBuffer[shift]!=0)

{

lastlow=Low[shift];

lastlowpos=shift;

whatlookfor=1;

ZigzagBuffer[shift]=lastlow;

res=1;

}

}

break;

case 1: // look for peak

if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)

{

ZigzagBuffer[lastlowpos]=0.0;

lastlowpos=shift;

lastlow=LowMapBuffer[shift];

ZigzagBuffer[shift]=lastlow;

res=1;

}

if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)

{

lasthigh=HighMapBuffer[shift];

lasthighpos=shift;

ZigzagBuffer[shift]=lasthigh;

whatlookfor=-1;

res=1;

}

break;

case -1: // look for lawn

if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)

{

ZigzagBuffer[lasthighpos]=0.0;

lasthighpos=shift;

lasthigh=HighMapBuffer[shift];

ZigzagBuffer[shift]=lasthigh;

}

if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)

{

lastlow=LowMapBuffer[shift];

lastlowpos=shift;

ZigzagBuffer[shift]=lastlow;

whatlookfor=1;

}

break;

default: return;

}

}

return(0);

}

//+------------------------------------------------------------------+
 

Frage für Neulinge

Hallo zusammen

ist es möglich, für einen benutzerdefinierten Indikator auf die vorherige Kerze zu suchen? wenn ja, was muss ich tun?

Grundsätzlich möchte ich nach der Farbe des Indikators suchen.

Vielen Dank im Voraus

 
basalo:
Hallo zusammen

ist es möglich, für einen benutzerdefinierten Indikator auf die vorherige Kerze zu suchen? wenn ja, was muss ich tun?

Grundsätzlich möchte ich nach der Farbe des Indikators suchen.

Vielen Dank im Voraus

Schauen Sie in der Hilfedatei des Metaeditors nach der Funktion iCustom.

Lux