[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

 

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.

 
belck:

Fragen von Neueinsteigern, um das Forum nicht zu überfrachten. Lassen Sie sich die Profis nicht entgehen. Ohne dich geht es nirgendwo hin.

Worauf wollen Sie hinaus? Es ist, als ob man nach der Zeit fragen könnte... oder Gesundheit... :))))))
 


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.....

 
Ich danke Ihnen!!! Ich werde es ausprobieren. Drei Tage lang kann ich nicht herausfinden, was los ist, denn eigentlich scheint alles in Ordnung zu sein.
 
Nein, das ist das Gleiche. Danke für die Antwort. Ich weiß nicht, was das Problem ist.
 

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//

 
Dimka-novitsek:


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.

Grund der Beschwerde: