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

 
costy_ >> :

Sie sollten kaufen gehen, wenn die Eröffnung höher ist als ma1.

Ich verstehe, dass "tumblr" in ||, da ich nicht weiß, wie man zum Beispiel "wenn" (ma1>ma2&ma1>Öffnen[1] "oder" ma1>ma3&&ma1>Öffnen[1]) zu bezeichnen "dann" BAY() öffnen;


Aus dem Diagramm ist ersichtlich, dass nicht alle Bedingungen erfüllt sind!!!


Versucht durch andere auf eine Kerze 53 Käufe.


Welche andere Möglichkeit gibt es, Logik zu implementieren?


Es gibt einfach eine große Anzahl von Fehlern in Ihrem Code.

Sie alle zu beschreiben und zu erklären, warum das so und nicht anders ist.... Ich habe nicht so viel Zeit.

Das Einzige, was ich im Moment korrigieren werde:

if (( ma1> ma2 && ma1> ma3 && Open[1]> ma1) || 
    ( ma2> ma1 && ma2> ma3 && Open[1]> ma1) ||
    ( ma3> ma1 && ma3> ma2 && Open[1]> ma1)
  )
  OpenBuy();
Vielleicht gebe ich Ihnen weitere Tipps, wenn ich Zeit habe ....



 
Danke, ich hab's.
if (( ma1> ma2 && ma1> ma3  && Open[1]> ma1) || 
    ( ma2> ma1 && ma2> ma3  && Open[1]> ma1) ||
    ( ma3> ma1 && ma3> ma2  && Open[1]> ma1)
   )
    OpenBuy();

aber ich muss es tun.

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

>> und ich muss

Das ist dasselbe, nur ist die erste Option kürzer.

 
MrSoros >> :

Das ist dasselbe, nur ist die erste Option kürzer.

Leider funktionierte die erste Option im Diagramm nicht richtig (es ist alles seltsam).

Zuerst natürlich schöner und die Logik ist so, es ist eine Art von zuerst Addition dann Multiplikation. =))

 
MrSoros >> :

Die Schilder sind in Ordnung.

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

Ich habe das schon einmal durchgemacht...

Aber das ist bereits eine Frage der Strategie.

>> so viele Trader, so viele Strategien.


Nein, das ist nicht, wie der Algorithmus funktioniert, jetzt schließt es auf CCI, wenn der Gewinn mehr als 10pp ist, und ich brauche genau das Niveau von 10pp Gewinn nur dort, dass auf klose schließen würde, wenn der Gewinn mehr als 10pp ist dann sollte es nicht auf CCI schließen. Momentan schließt er am CCI, wenn der Gewinnwert mehr als 10pp beträgt (

Die eigentliche Bedeutung des Algorithmus in dieser Funktion ist anders, es gibt eine Gewinnstufe von 10pp - das ist ein virtueller Gewinn, der durch die Klausel in Richtung des SSI-Indikators festgelegt wird. Wenn der Kurs in den Gewinn geht, passiert er immer dieses Niveau, da SSI nach rechts schaut, dann, nachdem er dieses Niveau passiert hat, gibt der Kurs manchmal eine umgekehrte Bewegung zurück zum Ausgangszustand oder eine Änderung der Trendrichtung, - in diesem Fall schaut SSI immer in die andere Richtung, und wenn er in die entgegengesetzte Richtung auf 10pp Niveau passiert, wird ein Auftrag festgelegt, da SSI in die entgegengesetzte Richtung schauen wird.

  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);

  

  cci_0< cci_1 && Bid-OrderOpenPrice() == Point* profit // может вот так? - так вообще не работает(
 

Hallo.

Prüfen Sie, ob die Losgröße als Prozentsatz des Saldos korrekt berechnet wurde:

//расчёт размера лота
double Lots()
   {
   double ls=MarketInfo(Symbol(),MODE_MINLOT)+MarketInfo(Symbol(),MODE_LOTSTEP)*MathFloor(( procentdepo*AccountBalance()/100000-MarketInfo(Symbol(),MODE_MINLOT))/MarketInfo(Symbol(),MODE_LOTSTEP));
     if( ls>MarketInfo(Symbol(),MODE_MAXLOT))   { ls=MarketInfo(Symbol(),MODE_MAXLOT); }
     if( ls<MarketInfo(Symbol(),MODE_MINLOT))   { ls=MarketInfo(Symbol(),MODE_MINLOT); }
   return( ls);
   }

wobei procentdepo % der Einlage ist

 
Piboli >> :

Hallo.

Prüfen Sie, ob die Losgröße als Prozentsatz des Saldos korrekt berechnet wurde:

wobei procentdepo % der Einlage ist.

Tun Sie dies.

extern double PercentLots  = 0.5;// внешние переменные


//то что ниже закиньте в конец кода
double GetLots() 
{
double minlot = MarketInfo(Symbol(), MODE_MINLOT);
double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);

if( PercentLots!=0)
 {
   double lot = NormalizeDouble(AccountBalance() * PercentLots  /1000.0 / 100.0, 2);
   if( lot < minlot) lot = minlot;
   if( lot > maxlot) lot = maxlot;
  }
  else lot= Lots; 
  return( lot);
  }  

//GetLots() - вставьте в ticket=OrderSend(Symbol(),OP_BUY,GetLots(),Ask,3,stop,Ask+Takeprofit*Point,"",MagicNumber,0,Green);
 
Piboli >> :

Hallo.

Prüfen Sie, ob die Losgröße als Prozentsatz des Saldos korrekt berechnet wurde:

wobei procentdepo % der Einlage ist

Besser noch, verwenden Sie diese Lot-Optimierungsfunktion, hier arbeitet MM, wenn es unrentable Trades gibt, dann wird das Lot auf das ursprüngliche reduziert.

//внешние переменные
extern double Lots = 0.1;          //стартовый лот до баланса 500
extern double MaximumRisk = 0.1;   //увеличение лота на каждые 500 баланса
extern double DecreaseFactor = 3.0;//уменьшение лота при серии убыточных позиций


//то что ниже  закиньте перед стартом
double LotsOptimized() {
       double lot = Lots;
       int orders = OrdersHistoryTotal();
       int losses = 0;
       lot = NormalizeDouble(AccountFreeMargin() * MaximumRisk / 500.0, 2);
       if ( DecreaseFactor > 0.0) {
for (int i = orders - 1; i >= 0; i--) {
       if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY) == FALSE) {
       Print("Error in history!");
       break;
       }
if (OrderSymbol() != Symbol() || OrderType() > OP_SELL) continue;
if (OrderProfit() > 0.0) break;
if (OrderProfit() < 0.0) losses++;
}
if ( losses > 1) lot = NormalizeDouble( lot - lot * losses / DecreaseFactor, 2);
}
if ( lot < 0.1) lot = 0.1;
if ( lot > 1000.0) lot = 1000;
return ( lot);}

int start(){//старт

LotsOptimized() -- вставьте в ticket=OrderSend(Symbol(),OP_BUY, LotsOptimized(),Ask,3, stop,Ask+ Takeprofit*Point,"", MagicNumber,0,Green);
 
Lediglich in den beiden vorangegangenen Beiträgen wird der Stufenwechsel der Partie nicht berücksichtigt. Leider.
 
Vinin >> :
Lediglich in den beiden vorangegangenen Beiträgen wird der Schritt des Loswechsels nicht berücksichtigt. >> Leider.

Kann ich, wenn ich den Schritt richtig verstehe, wie viel von dem Restbetrag der Partie zugerechnet werden?

Oder meinen Sie eine konstante Kurve der Loserhöhung, aber ich sehe den Sinn eines solchen Verlaufs nicht.

extern double balans = 500; //шаг баланса

lot = NormalizeDouble(AccountFreeMargin() * MaximumRisk / balans, 1);