MetaTrader 4 Build 529 Beta, Yeni Derleyici ile Yayınlandı - sayfa 98

 
evillive :
Burada hangi dehşetler yazıyor, şimdilik 553'ün üzerine güncelleme yapmaktan kaçınacağım ...

Grafik nesnelerin çıktısıyla ilgili sorunlar yaşamaya başladım. Kodun bir yerinde, fonksiyon

 //+----------------------------------------------------------------------------+
void SetTLine( color cl, int wnd, string nm= "" ,
               datetime t1= 0 , double p1= 0 , datetime t2= 0 , double p2= 0 ,
               bool ry=False, int st= 0 , int wd= 1 ) {
   if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_TREND , wnd, 0 , 0 , 0 , 0 );
   ObjectSet(nm, OBJPROP_TIME1 , t1);
   ObjectSet(nm, OBJPROP_PRICE1, p1);
   ObjectSet(nm, OBJPROP_TIME2 , t2);
   ObjectSet(nm, OBJPROP_PRICE2, p2);
   ObjectSet(nm, OBJPROP_COLOR , cl);
   ObjectSet(nm, OBJPROP_RAY    , ry);
   ObjectSet(nm, OBJPROP_STYLE , st);
   ObjectSet(nm, OBJPROP_WIDTH , wd);
}
//+----------------------------------------------------------------------------+

şöyle denir:

 //==============================================================================
// --------------------------------- Данные -----------------------------------+
//==============================================================================
   if (DrawGraphics) {                           // если рисуем графические объекты
      wnd=WindowFind( "i_StdDev(" +sdperiod+ ")" ); // номер окна индикатора
       if (wnd> 0 ) {                               // если индикатор на графике, нарисуем метку
         nm=Prefix+ "_Текущий бар" ;
         p1=WindowPriceMax(wnd); p2=WindowPriceMin(wnd);
         SetTLine(Blue,wnd,nm,Time[ 0 ],p1,Time[ 0 ],p2, false , 2 );
         }
      }
//-----------------------------------------------------------------------------+   

sorgusuz sualsiz gösterge penceresinde dikey bir eğilim çizgisi görüntüler (hata ayıklama sırasında gösterge noktalarının görsel algılanmasını kolaylaştırmak için sıfır çubuğunu işaretliyorum):


Aynı işlevi başka bir yerden kodda şöyle çağırdığımda:

   if (op==OP_SELLSTOP) {
      pp= MathMin (Low[x],Low[x- 1 ])-distanceSetOrders*PointX;
      b=iLowest(sy,tf,MODE_LOW, 2 ,(x- 1 ));
       if (pb-level* Point >pp) {
         ll=LotsS;
         if (StopLoss== 0 ) sl= 0 ;
         else sl= NormalizeDouble ( MathMax (pp+StopLoss*PointX, pp+(level+ 1 )* Point ),dg);
         if (TakeProfit== 0 ) tp= 0 ;
         else tp= NormalizeDouble ( MathMin (pp-TakeProfit*PointX, pp-(level+ 1 )* Point ),dg);
         co= "Отложенный" ;
         Message( "Кто звал? Чё..., ставить? Ставлю SellStop относительно бара " +b+
                 ", от " +DoubleToStr(pp,dg)+ " до " +DoubleToStr(Low[b],dg)+ " рисую линию" );
         SetOrder(sy, OP_SELLSTOP, ll, pp, sl, tp, mn1, co);
         if (DrawGraphics) {
            nm=Prefix+ "_Наименьшая цена_" +TimeToStr(Time[b]);
            SetTLine(FireBrick, 0 ,nm,Time[b],Low[b],Time[b],pp, false , 3 );
            }
         }
      }

böylece, grafikte bekleyen ayar seviyesinin hesaplandığı çubuğu benim için işaretler, daha sonra, garip bir şekilde, kendisine iletilen parametreler gerçek doğru değerleri gösterir, çubuk süresi trend çizgisi adına girilir, ancak satırın kendisi sıfır değerlere sahip ve hatta ve "Ray" olarak görüntüleniyor, ancak bu seçenekten sorumlu işlev parametresine false iletsem de - bir ışın değil:


Kodda bir hata görmüyorum. Belki bir aksaklık?
 
Grafikler tamamen öldürülmüş gibi görünüyor ... ekranda hiçbir düğme görüntülenmiyor. Hiçbir şey yapmadı, sadece terminali yeniden başlattı ve çizelgelerde asılı kalan ve normalde tüm grafik nesneleri oluşturan Uzman Danışmanlar öldü. Grafik nesnelerinin düzeltilmesi için birkaç gündür bekliyorum .... hmmm .... Bekledim .... Bunun için savaştılar deniyor, buna rastladılar. :) Yeni bir yapı için beklememiz gerekecek.
 
Programları yeni yapı ile yeniden derlediniz mi?
 
artmedia70 :

Grafik nesnelerin çıktısıyla ilgili sorunlar yaşamaya başladım. Kodun bir yerinde, fonksiyon

şöyle denir:

sorgusuz sualsiz gösterge penceresinde dikey bir eğilim çizgisi görüntüler (hata ayıklama sırasında gösterge noktalarının görsel algılanmasını kolaylaştırmak için sıfır çubuğunu işaretliyorum):


Aynı işlevi başka bir yerden kodda şöyle çağırdığımda:

böylece, grafikte bekleyen ayar seviyesinin hesaplandığı çubuğu benim için işaretler, daha sonra, garip bir şekilde, kendisine iletilen parametreler gerçek doğru değerleri gösterir, çubuk süresi trend çizgisi adına girilir, ancak satırın kendisi sıfır değerlere sahip ve hatta ve "Ray" olarak görüntüleniyor, ancak bu seçenekten sorumlu işlev parametresine false iletsem de - bir ışın değil:


Kodda bir hata görmüyorum. Belki bir aksaklık?
SetTLine işlevi içindeki tüm parametrelerin bir çıktısını ekleyin.
 

Ve yine soru zamanlama ile ilgili ... Piyasa ne zaman tam olarak açılacak ??? Global güncelleme ne zaman gelecek???

Kasım ayının sonunda, test ayı hakkında konuştular, ancak Aralık zaten tüm hızıyla devam ediyor ....

 

Renat,

Yeni ME4 desteğinde yakın gelecekte planlanıyor mu?

ENUM_ANCHOR_POINT ve ENUM_LINE_STYLE ?

Teşekkür ederim.

 
Wahoo :

Renat,

Yeni ME4 desteğinde yakın gelecekte planlanıyor mu?

ENUM_ANCHOR_POINT ve ENUM_LINE_STYLE ?

Evet onlar yapacak. Grafiksel model MQL5'teki ile aynı olacaktır.

Her derlemede grafik özellikleri ekler ve geliştiririz.

 

Aracılardan biri (en az biri), özellikle önemli yeniliklerle yeni yayınlarken, MT4 oluşturur, önce bunları bir demoda çalıştırır ve ardından gerçek hayatta uygular.

Bazı beta test kullanıcıları tarafından gözlemlenen komşu terminallerin istem dışı boşalması ile bağlantılı olarak, demo ve real ile aynı bilgisayar (veya VPS) terminallerinde iseniz, bu değişikliklerin uygulanması sırasında bu taktiğin izleneceğinden emin misiniz? Veya sistemdeki tüm terminallerin güncellemesinin kontrol edildiği ve yukarıda "kaçınmak için" silinmesi önerilen bir klasör sadece iki seçenek bırakıyor: ya hep ya hiç ?

 

Terminallerin çalışan kopyalarını kullanan bilgisayarlarda testler veya güncellemeler çalıştırmayın.

Hepsi otomatik olarak güncellenecektir. bilgisayardaki en az bir kopya güncelleme alır almaz.

Neden: