[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 892
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Hallo! Ich kann nicht herausfinden, was mit ???? los ist. Ändert nicht den Marktauftrag
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // Stop für Kaufpositionen berechnen//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); // Gewinn für Kaufpositionen berechnen//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits) // Berechnung des Stop für Verkaufspositionen//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);
//================================================== ==================//
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++;
}}}
if ( total == 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET)
Alert("Auftrag ist", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error", GetLastError());
}}}}
return(0);}
WAS IST DAS PROBLEM BITTE HELFEN ...........?????
Fragen von Neueinsteigern, um das Forum nicht zu überfrachten. Lassen Sie sich die Profis nicht entgehen. Ohne dich geht es nirgendwo hin.
Fragen von Neueinsteigern, um das Forum nicht zu überfrachten. Lassen Sie sich die Profis nicht entgehen. Ohne dich geht es nirgendwo hin.
Ich glaube, ich erfülle die while-Bedingung nie, denn wenn ich Comment in die Schleife einfüge, wird sie nicht reflektiert. Außerdem habe ich oberhalb der Schleife die Variable B gleich dem normalen erwarteten Wert, z. B. 0,0011, aber wenn ich sie mit Point multipliziere, kommt 0!!!! heraus.
int start()
{
double A,B,C ;A=Schluss[1];B=Schluss[Balken];
C=A-B ;Comment("Wert der Differenzi ", B*Point);
while (B*Point >Swing)
{ Comment("Value of Difference ", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);}
while (0-B*Point<Point)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
Alert("Value ", B);
Comment("Value differencei ",B);
//----
//----
return(0);
}
Ich bin mir nicht sicher, aber der richtige Weg wäre
int start()
{
double A,B,C ;A=Close[1];B=Close[bars]; Was bedeutet Close[bars]; ???? Close[Taktnummernfolge rückwärts, ohne Strom]
vorherige Kerze schließen[1]. vorherige Kerze schließen[2]
B=(A-B)*Point ; Comment("Wert der Differenz ", B); B ist gleich dem Schluss der vorherigen Kerze minus dem Schluss der Kerze, die Sie in B= close [....]
while (B > B) und höchstwahrscheinlich nicht while a if the condition
{ Comment("Value Difference ", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,, "macd sample",16384,0,Green);
}
while (0-V<Round) und höchstwahrscheinlich nicht while eine if-Bedingung
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
}
Alert("Wert ",B);
Comment("Wertdifferenzi ",B);
//----
//----
return(0);
}
Könnte falsch sein.....
Es gibt eine Menge Fehler in Ihrem Code ...... was wollen Sie tun, was Ergebnis??? Es sollte keine russischen Buchstaben geben...
Sie können C nicht in der Tabelle haben, weil C eine Zahl wie 1,23456 im Speicher hat.
0-B wäre eine negative Zahl....
und es ist besser, Gewinn und Verlust wie folgt zu berechnen
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // Stop für Kaufpositionen berechnen//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); // Gewinn für Kaufpositionen berechnen//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits) // Stop für Verkaufspositionen berechnen//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits); // Gewinn für Verkaufspositionen berechnen//
Ich glaube, ich erfülle die while-Bedingung nie, denn wenn ich Comment in die Schleife einfüge, wird sie nicht reflektiert. Außerdem habe ich oberhalb der Schleife die Variable B gleich dem normalen erwarteten Wert, z. B. 0,0011, aber wenn ich sie mit Point multipliziere, kommt 0!!!! heraus.
int start()
{
double A,B,C ;A=Schluss[1];B=Schluss[Balken];
C=A-B ;Comment("Wert der Differenzi ", B*Point);
while (B*Point >Spread)
{ Comment("Value of Difference ", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);}
while (0-B*Point<Point)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
Alert("Value ", B);
Comment("Value differencei ",B);
//----
//----
return(0);
}
Und Sie werben damit, dass Sie die Differenz zwischen A und B mit Punkt multiplizieren müssen?
Die Werte von A und B sind reelle Zahlen. Durch Multiplikation der Differenz mit Punkt wird die Anzahl der Dezimalstellen weiter erhöht. Wenn Sie eine ganze Zahl zum Vergleich mit einer "Spread"-Ganzzahl benötigen, sollten Sie eher durch Point dividieren.