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

 
Craft >>:

А я в форексе не силён.....как учитывается спред?


Die Differenz zwischen dem besten Kauf- (Geldkurs) und Verkaufskurs (Briefkurs) zum gleichen Zeitpunkt, d. h. Angebot und Nachfrage. Wenn Sie einen Forex-Kauf tätigen, kaufen Sie zum Geldkurs, und wenn Sie die Order schließen, verkaufen Sie zum Briefkurs. Die Differenz zwischen dem Geld- und dem Briefkurs entspricht dem Spread, der in der Regel zwischen 2 und 6 Pips für verschiedene Währungen und bei verschiedenen Maklerunternehmen liegt.
 

Ich denke, das ist im Code berücksichtigt, in OrderSend ist das Bid mit dem Ask vorgeschrieben:

//--------------------------------------------------------------- 8 --
   // Открытие ордеров
   while(true)                                  // Цикл закрытия орд.
     {
      if (Total==0 && Opn_B==true)              // Открытых орд. нет +
        {                                       // критерий откр. Buy
         RefreshRates();                        // Обновление данных
         Alert("Попытка открыть Buy. Ожидание ответа..");
         Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,0,0);//Открытие Buy
         if (Ticket > 0)                        // Получилось :)
           {
            Alert ("Открыт ордер Buy ",Ticket);
            return;                             // Выход из start()
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
      if (Total==0 && Opn_S==true)              // Открытых орд. нет +
        {                                       // критерий откр. Sell
         RefreshRates();                        // Обновление данных
         Alert("Попытка открыть Sell. Ожидание ответа..");
         Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,0,0);//Открытие Sel
         if (Ticket > 0)                        // Получилось :)
           {
            Alert ("Открыт ордер Sell ",Ticket);
            return;                             // Выход из start()
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
      break;                                    // Выход из while
     }
 
Craft >>:

А я в форексе не силён.

Futures sind keine Devisen.

Wie wird die Spanne berücksichtigt?

Sie wird in der Regel abgezogen.

 
Swetten >>:

Фьючерсы -- это не Форекс.

Verstehe, ich habe beschlossen, die Lücke zu schließen. Dieser Code kann also nicht für Futures angepasst werden?
 
Sie können. Sie müssen den Punktpreis und den Spread kennen.
 

OK Kumpels - Hilfe. Hier ist die Spezifikation des Vertrags:

Was/wie muss ich beachten?

 

Die Kosten der Zecke und die Größe der Zecke - darin liegt das Problem.

Ich meine, was Sie bekommen, ist: Ein "Pip" sind fünf Ticks. Fünf Ticks (ein "Pip" im Devisenhandel) kosten, grob gesagt, 3 Rubel.

Das heißt, die Diskretisierung (richtig?) ist nicht 1:1, sondern 1:5 für eine minimale Änderung des Wertes.

Im Allgemeinen ist es besser, auf die älteren Kameraden zu warten.

 

Guten Tag. Problem mit Trailing Stop.

Nicht ganz korrekt geänderte Aufträge. Es stellt sich heraus, dass das Stop-Loss-Niveau dem Kurs folgt, unabhängig von der Kursbewegung.

Nehmen wir an, wir eröffnen einen Kaufauftrag. Der Kurs steigt, der Trailing-Stop wird ausgelöst und der Stop-Loss wird nach oben gezogen. Dann bewegt sich der Kurs in die entgegengesetzte Richtung und der Auftrag wird nicht geschlossen,

Der Auftrag wird nicht geschlossen, sondern geändert und das Stop-Loss-Niveau wird gesenkt. Im Ergebnis wird das Geschäft unrentabel, obwohl es in die richtige Richtung eröffnet wurde.

  total=OrdersTotal();
      
  for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
          
            // check for trailing stop
         
            if(TrailingStop>0)  
              {               
               if( Bid-OrderOpenPrice()>Point*TrailingStop )
                 { 
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     
                     OrderModify(OrderTicket(),OrderOpenPrice(), Bid-StopLoss,Bid + TakeProfit/*OrderTakeProfit()*/,0,Green);
                     
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
             
            // check for trailing stop
          
            if(TrailingStop>0 )  
              { 
                            
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  
                    if((OrderStopLoss()>(Ask+Point*TrailingStop)) )
                      {
                      
                     
                       OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss,Ask-TakeProfit/*OrderTakeProfit()*/,0,Red);
                       
                       return(0);
                      }
                 }
              }
           }           
           
        }     

Ich nahm an, dass dies durch die Prüfung if( Bid-OrderOpenPrice()>Point*TrailingStop) verhindert wird, aber das scheint falsch zu sein. Was raten Sie?

 
vanson >>:

Доброго времени суток. Проблема с Trailing Stop'ом.

Не совсем корректно модифицируются ордера. Получается так,что уровень Stop Loss следует за ценой независимо от движения цены.

Допустим открывается ордер на покупку. Цена растет,срабатывает trailing stop и стоп лосс подтягивается. Потом цена пошла в обратном направлении,ордер не закрывается,

ордер не закрывается, а модифицируется и понидается уровень stop loss'a. В итоге сделка становится убыточной, хотя открылась она в правильном направлении.

Предполагал, что от этого предохраняет проверка if( Bid-OrderOpenPrice()>Point*TrailingStop ), но видимо это не так. Что посоветуете?

Sehen Sie sich an, wie das in der vorgefertigten Bibliothek mit verschiedenen Nachlauffunktionen gemacht wird. Sie können daraus lernen, oder Sie können es sofort nutzen... Der Autor möge mir verzeihen. Obwohl sie öffentlich zugänglich sind... :)
Dateien:
 
Wie können Sie feststellen, ob der Kurs ein bestimmtes Niveau nach oben oder nach unten überschritten hat, um dann zu öffnen, wenn dies geschehen ist? Ich verwende den Preis und nicht die Indikatoren. Vielen Dank für Ihr Feedback...