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
Vielen Dank an Mladen für den Code ... Hat dies die doppelte Macd Vergleich und 50 Crossover, wie Sie in der vorherigen Logik erklärt haben. Vielen Dank im Voraus
macerina
Der Unterschied besteht darin, dass in der Aspen-Grafikversion das sekundäre Einstiegssignal eine Kreuzung von rsi und seiner Signallinie ist, während in der Metatrader-Version das sekundäre Signal eine Kreuzung von rsi und einer 50er Linie ist. Der Macd-Teil ist derselbe (man sollte das Signal des geschlossenen Balkens nehmen - das ist die Art und Weise, wie es in der Aspen-Grafikversion gemacht wird)
danke für die Info mladen ... ist es möglich, die Option in den gleichen Indikator für die Auswahl 50 Linie Kreuz und Signal Linie Kreuz ...
Vielen Dank im Voraus
sulaimoney Mit diesen Prozeduren ist alles in Ordnung. Anbei ein einfacher Indikator, der anzeigt, dass alles in Ordnung ist, wenn die Aufrufe dieser beiden Prozeduren nacheinander ausgeführt werden. Überprüfen Sie den Rest des Codes, da der Fehler nicht in diesen beiden Prozeduren liegt
Hallo Mladen
ich habe den Code durchgesehen und einige Fehler gefunden, die ich ersetzt habe.
Jetzt versuche ich, den Wert von
double lastorderprice = 0;
Und
int bscount = 0;
Als Variablen auf einem globalen Bereich wirhin die ea, so dass sie von z.B. void NewOrder() aufgerufen werden können
// OnEveryTick
void LastBuySellOrder() // Schleift durch alle offenen Aufträge, um den letzten Auftrag (Kauf/Verkauf) auszuwählen OnEveryTick
{
double lastorderprice = 0;
datetime lastTime = 0;
datetime closeTime = 0;
int lastTicket = -1; // Keine offen.
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == OrderId
&&( OrderType() == OP_BUY || OrderType() == OP_SELL )
&& OrderOpenTime() >= lastTime && OrderCloseTime() == closeTime
&& OrderTicket() > lastTicket )
{
lastTime = OrderOpenTime();
lastOrderPrice = OrderOpenPrice();
closeTime = OrderCloseTime();
lastTicket = OrderTicket();
}
return(lastTicket);
}
sonst
Print("OrderSelect() Fehler - ", ErrorDescription(GetLastError()));
}
void PendingStopOrderCount()
{
int bscount = 0;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (AuftragSymbol() == Symbol())
if (OrderMagicNumber() == OrderId)
if (OrderType() == OP_BUYSTOP )
{
bscount++;
}
}
sonst
{
Print("OrderSend() Fehler - ", ErrorDescription(GetLastError()));
}
}
// Wenn OpBuy oder OpSell vorhanden
void NewOrder()
{
if (bscount==0)
{
BuyStopPending();
}
}
HALLO
Dieser Indikator ist repainter? Wenn ja, wann wie viele Balken zurück??
xps_v8_oszillator.ex4xps_v8_oszillator.mq4
HI
Dieser Indikator ist Repainter? Wenn ja, wann wie viele Balken zurück?
xps_v8_oszillator.ex4xps_v8_oszillator.mq4OK, aber ich benutze dies auf Offline-Chart M2 :S So ist es nicht normal Timeframe
OK, aber ich benutze das auf dem Offline-Chart M2 :S Es ist also kein normaler Timeframe
Probieren Sie es aus und Sie werden es selbst sehen (verwenden Sie etwas wie Autorefresh, um den Indikator zu zwingen, alle Balken zu aktualisieren, oder gehen Sie einfach, wenn genügend neue Balken erstellt wurden, zu den Parametern, ändern Sie nichts und klicken Sie auf OK). Achten Sie auf die Perioden, wenn der Trend ändert, was es tun wird.
Besser, als wenn ich versuche zu erklären, was mit dem Solar Winds Code nicht stimmt, um jemanden zu überzeugen.
Ich kann den Zeitraum nicht ändern, ich kann nur den Quellcode sehen, hier ist er:
#Eigenschaft indicator_separate_window
#Eigenschaft indicator_minimum 0
#Eigenschaft indicator_maximum 1
#Eigenschaft indicator_buffers 3
#Eigenschaft indicator_color2 C'72,49,255'
#Eigenschaft indicator_color3 C'255,49,72'
#Eigenschaft indicator_width2 6
#property indicator_width3 6
int Zeitraum;
extern bool alarm=false;
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
double alertBar;
double last;
int init() {
//-----------------------------
switch ( Zeitraum() )
{
Fall 1: Zeitraum = 2880;break;
Fall 5: Zeitraum = 576;break;
Fall 15: Zeitraum = 192;break;
Fall 30: Zeitraum = 96;break;
Fall 60: Zeitraum = 48;break;
Fall 240: Zeitraum = 48;break;
Fall 1440: Zeitraum = 48;break;
Fall 10080: Zeitraum = 48;break;
Standard: Periode = 48;break;
}
//-----------------------------
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(Ziffern+1);
SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2);
IndicatorShortName("");// X :-)");
SetIndexLabel(0, NULL);
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);
return(0);
}
int deinit()
{
//----
ObjectDelete("XPS");
ObjectDelete("XPS2");
ObjectDelete("XPS3");
//----
return(0);
}
int start() {
int limit;
int counted_bars=IndicatorCounted();
double prev,current,old;
double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
double Preis;
double MinL=0;
double MaxH=0;
if(gezählte_Balken>0) gezählte_Balken--;
limit=Bars-gezählte_bars;
for(int i=0; i<limit; i++)
{ MaxH = High;
MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)];
Preis = (High+Low)/2;
Wert = 0,33*2*((Preis-MinL)/(MaxH-MinL)-0,5) + 0,67*Wert1;
Wert=MathMin(MathMax(Wert,-0,999),0,999);
ExtBuffer0=0,5*MathLog((1+Wert)/(1-Wert))+0,5*Fisch1;
Wert1=Wert;
Fisch1=ExtPuffer0;
}
bool up = TRUE;
for(i=limit-2; i>=0; i--)
{
current=ExtBuffer0;
prev=ExtBuffer0;
if (((current0))||(current<0)) up= false;
wenn (((aktuell>0)&&(prev0)) up= true;
if(!up) {
ExtBuffer2=1;
ExtBuffer1=0;
if (alarm && i==0 && last != 2 && ExtBuffer1 == 0 && Bars>alertBar)
{
Alert("OSC... Möglicher Trend nach UNTEN am ",Period()," ",Symbol());
alertBar = Bars;last = 2;
}
}
sonst {
ExtBuffer1=1;
ExtBuffer2=0;
if (alarm && i==0 && last != 1 && ExtBuffer2 == 0 && Bars>alertBar)
{
Alert("OSC... Möglicher Trend nach OBEN am ",Period()," ",Symbol());
alertBar = Bars;
last = 1;
}
}
}//Schleife beenden
ObjectDelete("XPS");
ObjectCreate("XPS", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS","!XPS v8", 28, "Arial Black", C'46,46,46');
ObjectSet("XPS", OBJPROP_CORNER, 2);
ObjectSet("XPS", OBJPROP_BACK, 0);
ObjectSet("XPS", OBJPROP_XDISTANCE, 6);
ObjectSet("XPS", OBJPROP_YDISTANCE, 8);
ObjectDelete("XPS2");
ObjectCreate("XPS2", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS2","!XPS v8", 28, "Arial Black", Silver);
ObjectSet("XPS2", OBJPROP_CORNER, 2);
ObjectSet("XPS2", OBJPROP_BACK, 0);
ObjectSet("XPS2", OBJPROP_XDISTANCE, 4);
ObjectSet("XPS2", OBJPROP_YDISTANCE, 10);
ObjectDelete("XPS3");
ObjectCreate("XPS3", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS3", "Trade like a BOSS", 9, "Arial Black", Silver);
ObjectSet("XPS3", OBJPROP_CORNER, 2);
ObjectSet("XPS3", OBJPROP_BACK, 0);
ObjectSet("XPS3", OBJPROP_XDISTANCE, 7);
ObjectSet("XPS3", OBJPROP_YDISTANCE, 3);
return(0);
}
Und?
Ich kann die Periode nicht ändern, ich kann nur den Quellcode sehen, hier ist er:
#property indicator_separate_window
#Eigenschaft indicator_minimum 0
#Eigenschaft indicator_maximum 1
#Eigenschaft indicator_buffers 3
#Eigenschaft indicator_color2 C'72,49,255'
#Eigenschaft indicator_color3 C'255,49,72'
#Eigenschaft indicator_width2 6
#property indicator_width3 6
int Zeitraum;
extern bool alarm=false;
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
double alertBar;
double last;
int init() {
//-----------------------------
switch ( Zeitraum() )
{
Fall 1: Zeitraum = 2880;break;
Fall 5: Zeitraum = 576;break;
Fall 15: Zeitraum = 192;break;
Fall 30: Zeitraum = 96;break;
Fall 60: Zeitraum = 48;break;
Fall 240: Zeitraum = 48;break;
Fall 1440: Zeitraum = 48;break;
Fall 10080: Zeitraum = 48;break;
Standard: Periode = 48;break;
}
//-----------------------------
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(Ziffern+1);
SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2);
IndicatorShortName("");// X :-)");
SetIndexLabel(0, NULL);
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);
return(0);
}
int deinit()
{
//----
ObjectDelete("XPS");
ObjectDelete("XPS2");
ObjectDelete("XPS3");
//----
return(0);
}
int start() {
int limit;
int counted_bars=IndicatorCounted();
double prev,current,old;
double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
double Preis;
double MinL=0;
double MaxH=0;
if(gezählte_Balken>0) gezählte_Balken--;
limit=Bars-gezählte_bars;
for(int i=0; i<limit; i++)
{ MaxH = High;
MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)];
Preis = (High+Low)/2;
Wert = 0,33*2*((Preis-MinL)/(MaxH-MinL)-0,5) + 0,67*Wert1;
Wert=MathMin(MathMax(Wert,-0,999),0,999);
ExtBuffer0=0,5*MathLog((1+Wert)/(1-Wert))+0,5*Fisch1;
Wert1=Wert;
Fisch1=ExtPuffer0;
}
bool up = TRUE;
for(i=limit-2; i>=0; i--)
{
current=ExtBuffer0;
prev=ExtBuffer0;
if (((current0))||(current<0)) up= false;
wenn (((aktuell>0)&&(prev0)) up= true;
if(!up) {
ExtBuffer2=1;
ExtBuffer1=0;
if (alarm && i==0 && last != 2 && ExtBuffer1 == 0 && Bars>alertBar)
{
Alert("OSC... Möglicher Trend nach UNTEN am ",Period()," ",Symbol());
alertBar = Bars;last = 2;
}
}
sonst {
ExtBuffer1=1;
ExtBuffer2=0;
if (alarm && i==0 && last != 1 && ExtBuffer2 == 0 && Bars>alertBar)
{
Alert("OSC... Möglicher Trend nach OBEN bei ",Period()," ",Symbol());
alertBar = Bars;
last = 1;
}
}
}//Schleife beenden
ObjectDelete("XPS");
ObjectCreate("XPS", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS","!XPS v8", 28, "Arial Black", C'46,46,46');
ObjectSet("XPS", OBJPROP_CORNER, 2);
ObjectSet("XPS", OBJPROP_BACK, 0);
ObjectSet("XPS", OBJPROP_XDISTANCE, 6);
ObjectSet("XPS", OBJPROP_YDISTANCE, 8);
ObjectDelete("XPS2");
ObjectCreate("XPS2", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS2","!XPS v8", 28, "Arial Black", Silver);
ObjectSet("XPS2", OBJPROP_CORNER, 2);
ObjectSet("XPS2", OBJPROP_BACK, 0);
ObjectSet("XPS2", OBJPROP_XDISTANCE, 4);
ObjectSet("XPS2", OBJPROP_YDISTANCE, 10);
ObjectDelete("XPS3");
ObjectCreate("XPS3", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS3", "Trade like a BOSS", 9, "Arial Black", Silver);
ObjectSet("XPS3", OBJPROP_CORNER, 2);
ObjectSet("XPS3", OBJPROP_BACK, 0);
ObjectSet("XPS3", OBJPROP_XDISTANCE, 7);
ObjectSet("XPS3", OBJPROP_YDISTANCE, 3);
return(0);
}
Und?Es wird die Periode 48 für jeden Zeitrahmen angewendet, der kein Standard-Zeitrahmen ist (wie "2 Minuten" Offline-Diagramme)
Für Versionen von Solar Winds, für die Sie die Berechnungsperiode ändern können, siehe diesen Thread: https: //www.mql5.com/en/forum/179650
Grüße an Sie Gurus, Bitte helfen Sie mir dieses Skript zu bearbeiten und lassen Sie NUR um, Losgröße, kaufen/verkaufen. Ich besitze bereits einen EA, der Take Profit/Stop Loss automatisch platziert und damit in Konflikt mit diesem indy.
Dieses Skript öffnet automatisch eine beliebige Anzahl von Marktaufträgen, die Sie im MENÜ auf einmal angegeben haben, aber derzeit öffnet es nur einen Auftrag, auch wenn Sie 5 Aufträge eingeben. Bitte helfen Sie mir, diesen Fehler zu beheben und löschen Sie den Take Profit/Stop Loss aus dem Skript vollständig.
Seien Sie gesegnet