[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 580

 
Craft >>:

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


同じ瞬間に最も良い買い(bid)と売り(ask)の価格の差、すなわち需要と供給。FXで買い取引をする場合、Bid価格で買い、注文を決済するときにAsk価格で売りますが、BidとAskの差がスプレッドの値になり、通貨や証券会社によって通常2~6pips程度になります。
 

これはコードで説明されていると思いますが、OrderSendではask付きのbidが規定されています。

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

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

先物はFXではありません。

スプレッドはどのように考慮されているのでしょうか?

通常、差し引かれます。

 
Swetten >>:

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

なるほど、隙間を埋めることにしたんですね。では、このコードは先物に適応できないのでしょうか?
 
できます。ポイント価格とスプレッドを 知る必要があります。
 

OKメイト - 助けてください。以下は、契約書の仕様である。

何を・どのように検討すればよいのか?

 

ダニのコストとダニの大きさ--そこに問題があるのです。

つまり、得られるものは1ピップは5刻みです。5ティック(為替用語で1ピップ)は3ルーブル(約100円)です。

つまり、離散化(ですよね)は1:1ではなく、1つの最小値の変化に対して1:5なのです。

一般的には、年上の同志を待つのがよいでしょう。

 

こんにちは。トレイリングストップに関する問題。

正しく修正された命令とは言い難い。ストップロスの 水準は、値動きに関係なく価格に追随することが判明した。

例えば、買い注文を出すとします。価格が伸び、トレーリングストップが発動し、ストップロスが引き上げられる。その後、価格が反対方向に動き、注文は成立しない。

注文はクローズされず、修正され、ストップロス水準が下げられる。その結果、せっかく良い方向に進んだのに、採算が合わなくなってしまったのです。

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

私は、if( Bid-OrderOpenPrice()>Point*TrailingStop)をチェックすることでこれを防いでいると考えていましたが、どうやら間違っているようです。何かアドバイスはありますか?

 
vanson >>:

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

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

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

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

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

様々なトレーリング関数のレディメイドライブラリで、その方法をご覧ください。そこから学ぶもよし、そのまま使うもよし...。作者が許してくれますように。パブリックドメインで公開されているにもかかわらず...。:)
ファイル:
 
価格があるレベルを上下に横切ったとき、それが起こったときにオープンするためには、どのように見分ければいいのでしょうか?インジケーターではなく、価格を使用しています。ご感想ありがとうございました...