Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 372

 
Ekburg:

Na und? Funktioniert es denn?)


Nun, ja. Sie können es selbst überprüfen=) setzen Sie den Betrag über 700 Dollar und testen Sie es=) 5-Minuten-Intervall

Man könnte es auch so abändern, dass es jede Nacht von selbst startet =)

 
SpikeOne:


Nun, ja. Sie können es selbst überprüfen=) setzen Sie den Betrag über 700 Dollar und testen Sie es=) 5-Minuten-Intervall

Man könnte es auch so abändern, dass es jede Nacht von selbst startet=)


Ich verstehe))) Na dann viel Glück bei der Eroberung der lohnenden Höhen))
 

Hallo.

Wenn ich es auf diese Weise versucht habe, hatte ich ein Problem damit, aber ich habe es nie gefunden... Wenn ich es auf diese Weise versucht habe, wird der Auftrag den Wert des vorherigen Bar als TakeProfit setzen... Ich habe es auf beide Arten versucht... Der Auftrag sieht die Variable nie und überspringt sie... Als Ergebnis wird TP auf 0 oder 1 oder 2 gesetzt...

alles versucht, was mir in den Sinn kam, funktioniert nicht.... Das unklarste Wenn ich "TP =" durch Print ersetze, schreibt es alles... Helfen Sie einem Anfänger.... Ich werde sehr dankbar sein.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue);

_______________________________________________________________________________________

for (int i=1;i<=1;i++)

TP = ((Hoch[i]- Tief[i])*3);

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue);

____________________________________________________________________________________________

 
PaMyC:

Hallo.

Wenn ich es auf diese Weise versucht habe, hatte ich ein Problem damit, aber ich habe es nie gefunden... Wenn ich es auf diese Weise versucht habe, wird der Auftrag den Wert des vorherigen Bar als TakeProfit setzen... Ich habe es auf verschiedene Arten probiert... Der Auftrag sieht die Variable nie und überspringt sie... Das Ergebnis ist, dass TP auf 0 oder 1 oder 2 gesetzt wird...

alles ausprobiert, was mir eingefallen ist, funktioniert nicht.... Das unklarste Wenn ich "TP =" durch Print ersetze, schreibt es alles... Helfen Sie einem Anfänger.... Ich werde sehr dankbar sein.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue);

_______________________________________________________________________________________

for (int i=1;i<=1;i++)

TP = ((Hoch[i]- Tief[i])*3);

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue);

____________________________________________________________________________________________



Der thp in OrderSend() ist nicht die Anzahl der Punkte, sondern der Preis, zu dem die Order geschlossen wird, und wenn Sie den thp einstellen, müssen Sie sich an das Niveau des Einfrierens erinnern (jede DTZ hat ihre eigenen Probleme).

könnte nützlich sein, danke Artem.

artmedia70 15.12.2013 22:34 #

Es gibt auch ein nicht berücksichtigtes StopLevel. Wenn Sie es nicht wissen, kann es gleich Null sein, und dann wird es anders berechnet. Bei Alpari zum Beispiel ist er immer Null, aber es gibt Grenzen, die als Spread*2 berechnet werden

Definieren Sie also zunächst den StopLevel:

Weltweit:

int level=0, sp=0;

Dann in start() :

   sp=MarketInfo(sy,MODE_SPREAD);
//-------------- Проверка StopLevel ---------------
   level=MarketInfo(sy,MODE_STOPLEVEL );           // Значение уровня установки стопов
   if (level==0) level=sp*2;

Und dann vergleichen Sie schon die Größe der Stop-Order mit dem erhaltenen Level und verwenden die errechneten korrekten Werte für Stop-Orders:

//+----------------------------------------------------------------------------+
   double pa=MarketInfo(Symbol(),MODE_ASK),  // цена Ask
          pb=MarketInfo(Symbol(),MODE_BID),  // цена Bid
          sl=0, tp=0;
   if(OrderType()==OP_BUY) {
      sl=NormalizeDouble(MathMin(pb-StopLoss*Point,pb-(level+1)*Point),Digits);
      tp=NormalizeDouble(MathMax(pb+TakeProfit*Point,pb+(level+1)*Point),Digits);
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
   if(OrderType()==OP_SELL) {
      sl=NormalizeDouble(MathMax(pa+StopLoss*Point,pa+(level+1)*Point),Digits());
      tp=NormalizeDouble(MathMin(pa-TakeProfit*Point,pa-(level+1)*Point),Digits());
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
//+----------------------------------------------------------------------------+

 

Ich hatte auch nicht nur Artikel in meinem Code, sondern auch einen Preiswert...

Ich glaube, ich verstehe, was Ihr Code aussagt, aber wie soll er helfen...?

 
PaMyC:

Ich hatte auch nicht nur Artikel in meinem Code, sondern auch einen Preiswert...

Ich glaube, ich habe verstanden, was in Ihrem Code steht, aber wie soll das helfen...?


erklären

gegeben:

Niedrig=1,3674

Hoch=1,3811

Fragen=1.3734

Ihre Berechnungen:

Ask +((High[1]-Low[1])*3)*Point = 1,3734+((1,3811-1,3674)*3)*Point = 1,3734+(0,0137*3)*Point = 1,3734+(0,0411)*Point = 1,3734+411 = 412,3734 - scheint mir keine gute Quote zu sein)

Entfernen Sie einfach die Multiplikation mit dem Punkt und das war's)

 
PaMyC:

Ich hatte auch nicht nur Artikel in meinem Code, sondern auch einen Preiswert...

Ich glaube, ich verstehe, was Ihr Code aussagt, aber wie soll er helfen...?


Sie können TRs normal drucken, aber wenn Sie eine Bestellung aufgeben, multiplizieren Sie sie mit einem Punkt und bringen alles durcheinander...
 
PaMyC:

Ich hatte auch nicht nur Artikel in meinem Code, sondern auch einen Preiswert...

Ich glaube, ich verstehe, was Ihr Code aussagt, aber wie soll er helfen...?


Oder es handelt sich nicht um eine große Zahl, sondern um eine sehr kleine, weshalb Sie den TP auf 0 oder 1 setzen.
 
vadynik:
Können Sie mir sagen, wie man ein virtuelles Trailing macht, wie man OrderModify() ersetzt ?


Ich habe einen Block mit Trailing für einen Roboter, sowohl normal als auch mein eigenes spezifisches (für Nachrichtenbewegungen)

Ich kann sie Ihnen zuschicken, aber es liegt an Ihnen).

 
Ekburg:

Sie drucken den TP ganz normal, aber bei der Bestellung multiplizieren Sie wieder mit dem Punkt und bringen alles durcheinander...


Vielen Dank, dass es geholfen hat), habe den Punkt einfach entfernt und das Wunder ist geschehen))))

Wie ich dachte, war der Fehler sehr klein, aber so unangenehm...