Sipariş türü (Sat/Al) grafikte nasıl gösterilir? - sayfa 3

 
pro_ :

İşinize yararsa - iyi. Memnunum. Ancak benim görüşüm, herhangi bir göstergenin mümkün olduğu kadar evrensel olması ve yalnızca belirli bir durum için iyi olmaması gerektiğidir. Bir kere yaparsın ama düzgün yaparsın ki, bir şeyi değiştirmen gerekiyorsa ya da pozisyonlarına göre durum değişirse doğru çalışsın.

Her neyse, hoş geldiniz.

İşe yaramaz, Nesneyi yaratırsınız ve bir sonraki onay işaretinde yeniden yaratmayı denersiniz, bu başarısız olur. . . bu nedenle, ilk Sipariş bir Alış ve ikincisi bir Satış ise metin, Satın Al'dan Satış'a güncellenmez.
 
Daha önce de söylediğim gibi kodda çok fazla hata var. Askerin üzerinde çalışacağını ve kodlamayı biraz daha anlayacağını umuyordum. Bu onun niyeti değil gibi görünüyor. Ve ne yazık ki onun için kodu yazacak zamanım yok. Ona çalışmaya başlaması için bir şey verdim, bitmiş bir ürün değil.
 
RaptorUK :
İşe yaramaz, Nesneyi yaratırsınız ve bir sonraki onay işaretinde yeniden yaratmayı denersiniz, bu başarısız olur. . . bu nedenle, ilk Sipariş bir Alış ve ikincisi bir Satış ise metin, Satın Al'dan Satış'a güncellenmez.


Çalışıyor, ancak sadece son siparişi göster. Mevcut sipariş için nasıl değiştireceğimi bilmiyorum!
 

Bunun iyi bir uygulama olup olmadığını bilmiyorum, ancak etiketleri init() ve ObjectSetText'te sadece bir "." ile oluşturuyorum.

Henüz tamamen boş metin içeren bir etiketi nasıl yerleştireceğimi bulamadım. Denediğimde "Etiket" yazısı çıkıyor.

Tabii ki, kaç tane etikete ihtiyacınız olacağını bildiğiniz sürece sorun değil.

Ana gövdede fazla etiketleri silmek ve gerektiğinde yeni etiketler eklemek çok zor olmasa gerek diye düşünüyorum.

Etiketleri oluşturmak için init() içinde kullandığım kod bu.

 int y= 20 ;
for ( int x= 1 ;x<= 10 ;x++)
{
ObjectCreate ( "Message" +x, OBJ_LABEL , 0 , 0 , 0 ); // Creating obj.
   ObjectSet( "Message" +x, OBJPROP_CORNER , 1 );     // Reference corner
   ObjectSet( "Message" +x, OBJPROP_XDISTANCE , 10 ); // X coordinate
   ObjectSet( "Message" +x, OBJPROP_YDISTANCE , y); // Y coordinate
   ObjectSetText( "Message" +x, "." , 8 , "Arial" , CLR_NONE );   // Empty Labels
   y=y+ 15 ;
 

Ey. ve tanımlı()

 for ( int x= 1 ;x<= 10 ;x++)
 {
 ObjectDelete ( "Message" +x) ;   
 }
 
Konnj :

Çalışıyor, ancak sadece son siparişi göster. Mevcut sipariş için nasıl değiştireceğimi bilmiyorum!
En son kodunuzu gönderin. . .
 
{
   int    counted_bars=IndicatorCounted();
   int pos;
   string OrderTip = "OT";
   string ottt;
   color LabelColor3;

       for(int i=0;i<OrdersTotal();i++)
                    {
                     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
                     if(OrderSymbol()==Symbol() )
                       {
                        if(OrderType()==OP_BUY)  pos++;
                        if(OrderType()==OP_SELL) pos++;
                       }
                    }            
                    
      if (OrderType()==OP_BUY) { ottt="Buy";  LabelColor3 = DodgerBlue; } 
      if (OrderType()==OP_SELL){ ottt="Sell"; LabelColor3 = Red; }
      else ottt="";
     
      ObjectCreate(OrderTip, OBJ_LABEL, 0 , 0, 0, 0);
      ObjectSet(OrderTip, OBJPROP_CORNER, 1);
      ObjectSet(OrderTip, OBJPROP_XDISTANCE, 10);
      ObjectSet(OrderTip, OBJPROP_YDISTANCE, 15);
      ObjectSetText(OrderTip, "Order Type: "+ottt, 8, "Tahoma",LabelColor3);
}
 
Konnj :

Bütün kodu kastetmiştim. . . Aman neyse . . . bu değişiklikleri deneyin.

{
   int     counted_bars=IndicatorCounted();
   int pos;
   string OrderTip = "OT" ;
   string ottt = " " ;
   color LabelColor3 = Black;

   for ( int i= 0 ;i< OrdersTotal ();i++)
      {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderSymbol()== Symbol () )
         {
         if (OrderType() == OP_BUY) { ottt = "Buy" ;  LabelColor3 = DodgerBlue; } 
         if (OrderType() == OP_SELL){ ottt = "Sell" ; LabelColor3 = Red; }
         }
      }            
     
   if ( ObjectFind (OrderTip) < 0 ) ObjectCreate (OrderTip, OBJ_LABEL , 0 , 0 , 0 , 0 );

   ObjectSet(OrderTip, OBJPROP_CORNER , 1 );
   ObjectSet(OrderTip, OBJPROP_XDISTANCE , 10 );
   ObjectSet(OrderTip, OBJPROP_YDISTANCE , 15 );
   ObjectSetText(OrderTip, "Order Type: " +ottt, 8 , "Tahoma" ,LabelColor3);
}
 
Şu anda çalışıyor, çok teşekkür ederim.
 

Lütfen bu çok eski konu ile ilgisi olmayan sorgular göndermeyin.

sorgunuzu yeniden gönderdim

https://forum.mql4.com/72256