Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1647

 
EVGENII SHELIPOV #:

Hallo zusammen, ich schreibe gerade einen Code für einen Schleppnetzplan von Gruppenaufträgen. Die Codelogik für ein Schleppnetz sieht folgendermaßen aus:

Unter welchen Bedingungen sollte die Schleppnetzfischerei für Sammelaufträge beginnen?

 
EVGENII SHELIPOV #:

Hallo zusammen, ich schreibe gerade einen Code für einen Schleppnetzplan von Gruppenaufträgen. Die Codelogik für das Schleppnetz sieht folgendermaßen aus:



  int order[]={1,2,3,4,5,6,7,8,9,10};



void Tral_BU_Stop() {
 
  int j;
  for (int i=OrdersTotal()-1; i>=0; i--) {
  if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==True){
  if (OrderMagicNumber()==Mg&&OrderSymbol()==Symbol()&&OrderType() ==OP_BUYSTOP){
  j++;
  if ( Bid<=OrderOpenPrice()-DistPoint*order[j]*Po){
  bool modb=OrderModify(OrderTicket(),Bid+(DistPoint*order[j])*Po,OrderStopLoss(),OrderTakeProfit(),0,clrGreen);}} }}}
//================
  void Tral_SEL_Stop() {
  
  int j;
  for (int i=OrdersTotal()-1; i>=0; i--) {
  if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==True){
  if (OrderMagicNumber()==Mg&&OrderSymbol()==Symbol()&&OrderType() ==OP_SELLSTOP){
  j++;
  if (Ask>OrderOpenPrice()+DistPoint*order[j]*Po){
  bool mods=OrderModify(OrderTicket(),Ask-(DistPoint*order[j])*Po,OrderStopLoss(),OrderTakeProfit(),0,clrRed);}} }}} 

Ändern Sie die Werte und Sie werden glücklich sein

 
Aleksandr Egorov #:

Ändern Sie die Werte und Sie werden glücklich sein, ich denke, Sie werden es von dort aus herausfinden

Was ist "Ro"?
DistPoint*order[j]*Po
 
MakarFX #:
Was ist "Ro"?

abgekürzter Punkt

 
MakarFX #:

Unter welchen Bedingungen sollte die Schleppnetzfischerei für Sammelaufträge beginnen?




//+----------------------------------------------------------------------------+
//| Трейлинг стоп групповых ордеров                                            |
//+----------------------------------------------------------------------------+
void TrailingGroupOrder()
  {
   for(int i = OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
           {
            if(Or derType() == OP_BUY && Bid - GetAveragePrice() > TrailingStopGroupOrder*Point)
              {
               if(Bid - GetAveragePrice() > TrailingStopGroupOrder*Point || OrderStopLoss() == 0)
                 {
                  if(OrderStopLoss() < Bid - (TrailingStep + TrailingStopGroupOrder)*Point || OrderStopLoss() == 0)
                    {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Bid - TrailingStopGroupOrder*Point, Digits), tp, 0))
                        Print("Ошибка модификации групповых ордеров на покупку!");
                    }
                 }
              }
            if(OrderType() == OP_SELL && GetAveragePrice() - Ask > TrailingStopGroupOrder*Point)
              {
               if(GetAveragePrice() - Ask > TrailingStopGroupOrder*Point || OrderStopLoss() == 0)
                 {
                  if(OrderStopLoss() > Ask + (TrailingStep + TrailingStopGroupOrder)*Point || OrderStopLoss() == 0)
                    {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Ask + TrailingStopGroupOrder*Point, Digits), tp, 0))
                        Print("Ошибка модификации групповых ордеров на продажу!");
                    }
                 }
              }
           }
        }
     }
  }

int                         TrailingStep                   = 1;       // Шаг для TrailingStop
extern int                  TakeProfitGroupOrder           = 30;      // Тейкпрофит групповых ордеров
extern int                  TrailingStopGroupOrder         = 10;      // Трейлинг стоп груповых ордеров
 
Aleksandr Egorov #:

Punkt.

In diesem Fall wird bei der Eröffnung der zweiten Order eine Stop-Loss-Order platziert, und es besteht möglicherweise keine Möglichkeit, die dritte Order im Raster zu eröffnen...

 
EVGENII SHELIPOV #:

Ich meinte, unter welchen Bedingungen es beginnt

TrailingGroupOrder()
 
MakarFX #:

Ich meinte, unter welchen Bedingungen es beginnt

 if(CountTrade()>1)
     {
      TrailingGroupOrder();
     }
 
MakarFX #:

In diesem Fall wird bei der Eröffnung des zweiten Auftrags ein Stop-Loss-Auftrag platziert, und es besteht möglicherweise keine Möglichkeit, den dritten Auftrag im Raster zu eröffnen...

Soweit ich weiß, können Sie keinen Stopp setzen, bevor der Auftrag eröffnet ist.

und es gibt keine Möglichkeit, eine Gruppenänderung ohne sie durchzuführen

j++;
  if (Ask>OrderOpenPrice()+DistPoint*order[j]*Po){
  bool mods=OrderModify(OrderTicket(),Ask-(DistPoint*order[j])*Po,OrderStopLoss(),OrderTakeProfit(),0,clrRed);}
 
MakarFX #:

Warum diese Verdoppelung

Sie können das so machen.


Und zeigen Sie mir auch, welche Parameter

Du hast Recht, Makar, aber das meiste von diesem Code stammt nicht von mir. Ich habe es aus einem Buch zum Selbststudium. Erst recht löst diese Ersetzung nicht die eigentliche Frage.

Grund der Beschwerde: