[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 619

 
kwadrad :

Ve bu konuda ne yapılabilir?

açmadan önce verileri güncelleyin, fiyatı normalleştirin

şarap :

Hemen böyle bir kapatmanın tavsiye edilmediğini yazdım. Belgelenmemiş bir özellik kullanılıyor. Ancak herhangi bir açık pozisyon için kapanış zamanı sıfırdır ve kapanış fiyatı mevcut kapanış fiyatına eşit olacaktır.

tüm bu deneylerden sonra zaten açıktır)

 
kwadrad :

Ve bu konuda ne yapılabilir?

Pozisyon açarken belirlediğiniz fiyatlara dikkatlice bakın. Mutlaka vardır... Sor ile Bid'i karıştırmadınız mı?
 
artmedia70 :
Pozisyon açarken belirlediğiniz fiyatlara dikkatlice bakın. Mutlaka vardır... Sor ile Bid'i karıştırmadınız mı?

ve orada. Teşekkür ederim.
 
kwadrad :

ve orada. Teşekkür ederim.
Hiçbir şey için değil - bu yeni başlayanların karıştırdığı ilk şey, kendimden biliyorum ...
 
Basit bir takip eden durdurmanın durdurma seviyesini değil, fiyatı takip eden bekleyen bir emri hareket ettirmesini sağlayan var mı? Bunu yapmak mümkün mü?
Hatta denedim, kıvrandım, sadece ertelemenin bir hasta gibi fiyatın arkasında ileri geri hareket etmesini sağladım ...

Belki de en basit takip işlevini, duraklar yerine siparişlerle ilgilenmesi için yeniden yapmak mümkün mü? Örneğin bu:

 //+----------------------------------------------------------------------------+
//|  Сопровождение позиции простым тралом                                      |
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" - текущий символ)                   |
//|    op - операция                   (-1 - любая позиция)                    |
//|    mn - MagicNumber                (-1 - любой магик)                      |
//+----------------------------------------------------------------------------+
   void TrailingPositionsSimplTR( string sy= "" , int op=- 1 , int mn=- 1 ) {
   double p, pp;
   int     i, k= OrdersTotal ();

   if (sy== "" || sy== "0" ) sy= Symbol ();
  p=MarketInfo(sy, MODE_POINT);
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
       if (OrderSymbol()==sy && (op< 0 || OrderType()==op)) {
         if (mn< 0 || OrderMagicNumber()==mn) {
           if (OrderType()==OP_BUY) {
            pp=MarketInfo(sy, MODE_BID);
             if (!ProfitTrailing || (pp-OrderOpenPrice())>TrailingStopBuy*p) {
               if (OrderStopLoss()<pp-(TrailingStopBuy+TrailingStepSimplTR- 1 )*p) {
                ModifyOrder(sy, - 1 , pp-TrailingStopBuy*p, 0 , clModifyBuy); //
              }
            }
          }
           if (OrderType()==OP_SELL) {
            pp=MarketInfo(sy, MODE_ASK);
             if (!ProfitTrailing || OrderOpenPrice()-pp>TrailingStopSell*p) {
               if (OrderStopLoss()>pp+(TrailingStopSell+TrailingStepSimplTR- 1 )*p || OrderStopLoss()== 0 ) {
                ModifyOrder(sy, - 1 , pp+TrailingStopSell*p, 0 , clModifySell);
              }
            }
          }
        }
      }
    }
  }
}
 
ToLik_SRGV :

Print(), 4 ondalık basamağa kadar yuvarlar, çift türü konsola doğru şekilde yazdırmak için ( bu, iOpen() bu durumda 5 ondalık basamak doğruluğuyla döndürür), DoubleToStr() işlevini kullanmanız gerekir.

string DoubleToStr ( çift değer, int basamak)
Sayısal bir değeri, belirtilen duyarlık biçiminde sayının karakter temsilini içeren bir metin dizesine dönüştürür.

Seçenekler:

value - Величина с плавающей точкой.

digits - Формат точности, число цифр после десятичной точки (громное спасибо.


Çok teşekkürler .
 
Roger :


Şu Expert Advisor'a bakın, orada uyguladım.

http://www.rogersignals.com/ru/experts.php?a=Support_Resistance

tamam teşekkürler bir bakayım...
 
artmedia70 :
Basit bir takip eden durdurmanın durdurma seviyesini değil, fiyatı takip eden bekleyen bir emri hareket ettirmesini sağlayan var mı? Bunu yapmak mümkün mü?
Hatta denedim, kıvrandım, sadece ertelemenin bir hasta gibi fiyat için ileri geri hareket etmesini sağladım ...

Belki de en basit takip işlevini, duraklar yerine siparişlerle ilgilenmesi için yeniden yapmak mümkün mü? Örneğin bu:

Senin için çok karışık :)
İşte kodum

 //+------------------------------------------------------------------+
void trailingOrder( int magic, int trailing){
   int index = 0 ;
   while (trailing > 0 && OrdersTotal () != 0 && OrderSelect (index, SELECT_BY_POS)){
      if (OrderMagicNumber() == magic){
         if (OrderType() == OP_BUYSTOP){
            if (OrderOpenPrice() - Ask > Point *trailing){
               if ((Ask+ Point *trailing)-Ask >= MarketInfo( Symbol (), MODE_STOPLEVEL)* Point && (Ask+ Point *trailing)-Ask > MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point ){
                  if (!OrderModify(OrderTicket(),Ask+ Point *trailing,OrderStopLoss(),OrderTakeProfit(), 0 )) Print ( ">>> ERROR " , GetLastError ());
               } else {
                  Print ( ">>> Слишком близко к рынку!" );
               }
            }
            return ;
         }
         if (OrderType() == OP_SELLSTOP){
            if (Bid - OrderOpenPrice() > Point *trailing){
               if (Bid-(Bid- Point *trailing) >= MarketInfo( Symbol (), MODE_STOPLEVEL)* Point && Bid-(Bid- Point *trailing) > MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point ){
                  if (!OrderModify(OrderTicket(),Bid- Point *trailing,OrderStopLoss(),OrderTakeProfit(), 0 )) Print ( ">>> ERROR " , GetLastError ());
               } else {
                  Print ( ">>> Слишком близко к рынку!" );
               }
            }
            return ;
         }
      }
      index++;
   }
}
//+------------------------------------------------------------------+
Ertelenen sihirbaz ve istenen esaret parametresi olarak yönteme geçersiniz.
 
       for (i = 0 ;i< OrdersTotal ();i++)
      {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true&&OrderMagicNumber()==MAGICMA&&OrderSymbol()== Symbol ())
         {
             if ( MathAbs (funk-OrderOpenPrice())> Point )
            {
               if (OrderType()==OP_BUYSTOP||OrderType()==OP_BUYLIMIT&& MathAbs (Ask-funk)>MarketInfo( Symbol (),MODE_STOPLEVEL)* Point )
               {
                  OrderModify(OrderTicket(), NormalizeDouble (funk, Digits ),OrderStopLoss(), NormalizeDouble (funk+TakeProfiti* Point , Digits ), 0 );
               }
               if (OrderType()==OP_SELLSTOP||OrderType()==OP_SELLLIMIT&& MathAbs (Bid-funk)>MarketInfo( Symbol (),MODE_STOPLEVEL)* Point )
               {
                  OrderModify(OrderTicket(), NormalizeDouble (funk, Digits ),OrderStopLoss(), NormalizeDouble (funk-TakeProfiti* Point , Digits ), 0 );
               }
            }
         }
      }
bunun gibi bir şey, işte hesaplanan funk değerini takip etmek için bir emir
 
ToLik_SRGV :

Senin için çok karışık :)
İşte kodum

Ertelenen sihirbaz ve istenen esaret parametresi olarak yönteme geçersiniz.

Peki, teşekkürler! Bence ihtiyacın olan bu!