[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 242

 

Ich habe ein Problem mit der Klausel. Können Sie mir sagen, wie ich die CCI-Bedingung in der Funktion implementieren kann?

Es muss eine Bedingung festgelegt werden und der Auftrag muss mit einem Gewinn von 10pp geschlossen werden.

1) Wenn der CCI nach unten zeigt, schließen wir bei einem Gewinn von 10pp einen Kaufauftrag.

2) Verkaufen - ähnlich.

extern bool ClosePips   = true;//использовать закрытие ордера при профите 10пп по условиям ССИ
extern double profit    = 10.0;//профит по клозе

int start(){
double cci_0 = iCCI(NULL, 0, 14, PRICE_CLOSE, 0);;
double cci_1 = iCCI(NULL, 0, 14, PRICE_CLOSE, 1);;

if ( ClosePips){
int slip=3;
for (int trade2 = OrdersTotal() - 1; trade2 >= 0; trade2--) {
   OrderSelect( trade2, SELECT_BY_POS, MODE_TRADES);
   if (OrderSymbol() == Symbol()) {
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
   if ((OrderType() == OP_BUY)&&( cci_0< cci_1 что сюда вписать???)) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
   if ((OrderType() == OP_SELL)&&( cci_0> cci_1 что сюда вписать???)) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
   }Sleep(1000);}}}
будет ли это корректным если прописать вот так?
if ((OrderType() == OP_BUY)&&( cci_0< cci_1 && Bid - OrderOpenPrice()<=Point* profit ))

 
Alive писал(а) >>
Bei einigen Symbolen, z. B. EUR/USD, werden die Kurse mit 5 Dezimalstellen angegeben. Meine Umgebungsvariablen haben jedoch Werte mit nur 4 Dezimalstellen. Wie kann ich den vollständigen Wert von Umgebungsvariablen ermitteln?

Und wie haben Sie sie angeschaut? Print() gibt immer bis zu 4 Zeichen aus. Verwenden Sie vorzugsweise DoubleToStr();

 
Martingeil >> :

Ich habe mit dem Problem mit CCI Sperren konfrontiert, wissen Sie, wie man Bedingung auf CCI in der Funktion zu implementieren.

Es muss eine Bedingung festgelegt werden und der Auftrag muss mit einem Gewinn von 10pp geschlossen werden.

1) Wenn der CCI nach unten zeigt, schließen wir bei einem Gewinn von 10pp einen Kaufauftrag.

2) Verkaufen - in ähnlicher Weise.



Das müssen Sie tun

if (OrderType()==OP_BUY && cci_0< cci_1 && Bid-OrderOpenPrice()>=Point* profit)
 
MrSoros >> :

So muss es auch sein.


Ich danke Ihnen! Das war's, wenn ich es richtig mache, bringe ich die Schilder nicht durcheinander, oder?

extern bool ClosePips   = true;//использовать закрытие ордера при профите 10пп по условиям ССИ

int start(){
double cci_0 = iCCI(NULL, 0, 14, PRICE_CLOSE, 0);;
double cci_1 = iCCI(NULL, 0, 14, PRICE_CLOSE, 1);;

if ( ClosePips){
int slip=3;
int profit=10;
for (int trade2 = OrdersTotal() - 1; trade2 >= 0; trade2--) {
   OrderSelect( trade2, SELECT_BY_POS, MODE_TRADES);
   if (OrderSymbol() == Symbol()) {
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
   if (OrderType() == OP_BUY && cci_0< cci_1 && Bid-OrderOpenPrice() >= Point* profit) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
   if (OrderType() == OP_SELL && cci_0> cci_1 && OrderOpenPrice() - Ask >= Point* profit) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
   }Sleep(1000);}}}
 
Martingeil >> :

Ich danke Ihnen! Wenn ich das richtig mache, ist dann etwas mit den Schildern nicht in Ordnung?


Die Zeichen sind richtig.

Die Idee selbst (CCI Schließung), von meinem Standpunkt aus - nicht ahty....

Ich habe das schon einmal durchgemacht...

Aber es ist eine Frage der Strategie.

So viele Händler wie es Strategien gibt...

 

Können Sie mir sagen, wie ich den Operator richtig schreibe, etwas mit "oder" funktioniert nicht, es kauft, wo es nicht sollte.

Ich danke Ihnen!
if (
   {( ma1> ma2 && ma1> ma3  && Open[1]> ma1)} || 
   {( ma2> ma1 && ma2> ma3  && Open[1]> ma1)} ||
   {( ma3> ma1 && ma3> ma2  && Open[1]> ma1)}
   )
    OpenBuy();

ну и т. д.


 
Entfernen Sie die geschweiften Klammern, sie sind unnötig. Ich frage mich, wie es überhaupt zustande gekommen ist.
 
granit77 >> :
Entfernen Sie die geschweiften Klammern, sie sind unnötig. Ich frage mich, wie sie überhaupt kompiliert wurde?

Ich habe es auf beide Arten kompiliert und es funktioniert immer noch nicht.

(Seltsamerweise wurde es kompiliert =))

 
costy_ >> :

Ich habe beide Möglichkeiten kompiliert und es funktioniert immer noch nicht.

if (( ma1> ma2 && ma1> ma3  && Open[1]> ma1) || 
    ( ma2> ma1 && ma2> ma3  && Open[1]> ma1) ||
    ( ma3> ma1 && ma3> ma2  && Open[1]> ma1)
   )
    OpenBuy();

- >> Das ist eine gute Logik.

Frage: Sind die Bedingungen selbst korrekt?

 
Zeigen Sie, was ma1...ma3 ist und beschreiben Sie die Logik in Worten. Morgen früh wird jemand eifrig dabei sein, es zu korrigieren :))