[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 580

 
Craft >>:

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


La differenza tra i migliori prezzi di acquisto (bid) e di vendita (ask) nello stesso momento - cioè domanda e offerta. Se fai un trade Buy sul forex, compri al prezzo Bid, e quando chiudi l'ordine, vendi al prezzo Ask, la differenza tra Bid e Ask e sarà il valore dello spread, di solito da 2 a 6 pips per diverse valute e in diverse compagnie di brokeraggio
 

Penso che questo sia tenuto in considerazione nel codice, in OrderSend l'offerta con l'ask è prescritta:

//--------------------------------------------------------------- 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 >>:

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

I futures non sono forex.

Come si tiene conto dello spread?

Di solito viene dedotto.

 
Swetten >>:

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

Capisco, ha deciso di riempire il vuoto. Quindi questo codice non può essere adattato per i futures?
 
È possibile. Devi conoscere il prezzo del punto e lo spread.
 

OK amici - aiuto. Ecco la specifica del contratto:

Cosa/come devo considerare?

 

Il costo della zecca e la dimensione della zecca, ecco dove sta il problema.

Cioè, quello che si ottiene è: Un "pip" è cinque tick. Cinque tick (un "pip" in termini di forex) costano 3 rubli, più o meno.

Cioè, la discretizzazione (giusto?) non è 1:1, ma 1:5 per un cambiamento minimo di prezzo.

In generale, è meglio aspettare i compagni più anziani.

 

Buon pomeriggio. Problema con il Trailing Stop.

Ordini modificati non proprio correttamente. Si scopre che il livello di stop loss segue il prezzo indipendentemente dal movimento del prezzo.

Diciamo che apriamo un ordine di acquisto. Il prezzo cresce, il trailing stop scatta e lo stop loss viene tirato su. Poi il prezzo si muove nella direzione opposta e l'ordine non viene chiuso,

L'ordine non viene chiuso e viene modificato e il livello di stop loss viene abbassato. Come risultato l'affare diventa non redditizio, anche se è stato aperto nella giusta direzione.

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

Ho supposto che questo sia impedito dal controllo if( Bid-OrderOpenPrice()>Point*TrailingStop) ma sembra essere sbagliato. Cosa consigliate?

 
vanson >>:

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

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

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

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

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

Guardate come si fa nella libreria pronta di diverse funzioni di trascinamento. Puoi imparare da esso, o puoi usarlo subito... Che l'autore mi perdoni. Anche se sono disponibili nel pubblico dominio... :)
File:
 
Come si fa a capire se il prezzo ha attraversato un certo livello verso l'alto o verso il basso, per aprire quando è successo? Sto usando il prezzo e non gli indicatori. Grazie per il vostro feedback...