[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 344

 
Summus_Digitus :
Herkese selam. Bu ciddi ve acil bir konu ve dedikleri gibi, tüm interneti kapladım... Genel olarak, MT4'e geçmeye karar verdim, 3 gündür oldukça uzun bir süre kullandım. Ve sonra evin ışıkları kapandı, daha sonra bilgisayarı açtım ve beni ilk kez görüyor gibi görünüyor, program ayarları yanlış gitti ve tarayıcı ziyaret edilen siteleri unuttu! Ciddi bir şey düşünmedim ama sonra aniden MT'ye giriyordum, eskiz bir sistemle açık 4 H4 grafiği var ve genellikle yanlış olanı gösteriyor, StartFX 2 ile hep aynı fiyatı kontrol ettim, zaman aralığını açmak istiyorum H1 ve D1 ve bekle... Bir saat bekliyorum, ikincisi o günlere göre değil de yıllara göre güncellenecek, genel olarak hiçbir şekilde güncelleme yok. "Pekala, her şeyi yeniden yükleyin" - diyorsunuz ve size "Cehenneme kadar" diye cevap vereceğim. "Pekala, kim bilir hangi siteden bir tür yazılım güncellemesinin göstergesini indirin" - siz sorun, ben de size "Cehenneme iki kez" diye cevap vereceğim. Gerçekten para kazanmaya devam etmek ve bilgisayar yardımını 1 ile boğmak istiyorum ve göreceğiz :-)

Hıçkırık! Dürüst olmak gerekirse - okudum ve kahkahalarla titreyen ağzımdan aşağı doğru bir gözyaşı yuvarlandı ...
 
VladTch :

Herkese iyi günler!

Görünüşe göre sorum basit, ancak tüm makaleleri kürekledim, ancak buna bir cevap bulamadım - dönüş (-1) operatörü nasıl çalışır. Kontrolü nereye aktarıyor? İşte bu kodda, örneğin:

başka dönüş ( 0 ) ;

Parantez içinde sıfır, parantez olmadan - her şey açık görünüyor. Peki ya (-1)?

Cevap için teşekkürler. :)

Özel fonksiyonlar sıradan fonksiyonlardır. Kullanıcı tanımlı işlevler olarak adlandırılabilir. Ama bir özelliği var. Bir sistem çağrısı parametreleri veya bir dönüş değeri iletmez.

 
Summus_Digitus :
Herkese selam. Bu ciddi ve acil bir konu ve dedikleri gibi, tüm interneti kapladım... Genel olarak, MT4'e geçmeye karar verdim, 3 gündür oldukça uzun bir süre kullandım. Ve sonra evin ışıkları kapandı, daha sonra bilgisayarı açtım ve beni ilk kez görüyor gibi görünüyor, program ayarları yanlış gitti ve tarayıcı ziyaret edilen siteleri unuttu! Ciddi bir şey düşünmedim ama sonra aniden MT'ye giriyordum, eskiz bir sistemle açık 4 H4 grafiği var ve genellikle yanlış olanı gösteriyor, StartFX 2 ile hep aynı fiyatı kontrol ettim, zaman aralığını açmak istiyorum H1 ve D1 ve bekle... Bir saat bekliyorum, ikincisi o günlere göre değil de yıllara göre güncellenecek, genel olarak hiçbir şekilde güncelleme yok. "Pekala, her şeyi yeniden yükleyin" - diyorsunuz ve size "Cehenneme kadar" diye cevap vereceğim. "Pekala, kim bilir hangi siteden bir tür yazılım güncellemesinin göstergesini indirin" - siz sorun, ben de size "Cehenneme iki kez" diye cevap vereceğim. Gerçekten para kazanmaya devam etmek ve bilgisayar yardımını 1 ile boğmak istiyorum ve göreceğiz :-)

Annals'a!!!
 

Numarayı neden renklendiremiyorsun?

 #property indicator_chart_window
void start()
   {
string spred=DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD), 0);
   string lot=AccountFreeMargin()/(Bid)*0.002;
   string lots=StringSubstr(lot, 4, 1);
 
SetLabel("ЧИСЛО",   lots , ColorOnSign(lots), 5, 7, 1);}
  
   color ColorOnSign(double nu){
      color lcColor=Navy;
         if (nu<4) lcColor=Green;
         if (nu>6) lcColor=Red;
      return(lcColor);}
     
   void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
      if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
         ObjectSetText(nm, tx, fs);
         ObjectSet(nm, OBJPROP_COLOR    , cl);
         ObjectSet(nm, OBJPROP_XDISTANCE, xd);
         ObjectSet(nm, OBJPROP_YDISTANCE, yd);
         ObjectSet(nm, OBJPROP_CORNER   , cr);
         ObjectSet(nm, OBJPROP_FONTSIZE , 18);
      return(0);}

Numarayı neden renklendiremiyorsun?

 

Garip. soru gibiydi :(

Derleyin!

 
Elektronik :

Numarayı neden renklendiremiyorsun?

 #property indicator_chart_window
void start()
   {
string spred=DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD), 0);
   string lot=AccountFreeMargin()/(Bid)*0.002;
   string lots=StringSubstr(lot, 4, 1);
 
SetLabel("ЧИСЛО",   lots , ColorOnSign(lots), 5, 7, 1);}
  
   color ColorOnSign(double nu){
      color lcColor=Navy;
         if (nu<4) lcColor=Green;
         if (nu>6) lcColor=Red;
      return(lcColor);}
     
   void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
      if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
         ObjectSetText(nm, tx, fs);
         ObjectSet(nm, OBJPROP_COLOR    , cl);
         ObjectSet(nm, OBJPROP_XDISTANCE, xd);
         ObjectSet(nm, OBJPROP_YDISTANCE, yd);
         ObjectSet(nm, OBJPROP_CORNER   , cr);
         ObjectSet(nm, OBJPROP_FONTSIZE , 18);
      return(0);}

Numarayı neden renklendiremiyorsun?

Eh, onu boyadınız, ancak rengi değiştirmek için aynı türden, ancak farklı bir renkte başka bir nesne yaratmanız gerekiyor! Ve nesneleri değiştirin, ardından renk görsel olarak değişecek! Ben böyle anlıyorum! Ya da belki başka bir görüş var mı? Ben kendim sadece Masha'nın renklerini bu şekilde değiştirdim.
 

Bence her şey sayılarla ilgili

lots=StringSubstr(lot, 4, 1); 

belki program tek haneli olarak anlar

 
Elektronik :

Garip. soru gibiydi :(

Derleyin!

Evet eklemek istedim ve yanlışlıkla sildim. Geri yüklemedi.

Bununla rengi değiştirin:

ObjectSet(nm, OBJPROP_COLOR , cl);

Kodunuz, rengi nerede değiştirdiğinizi göstermiyor.

============

Nerede olduğunu anladım...

Bunun gibi olmalı:

   void SetLabel( string nm, string tx, color cl, int xd, int yd, int cr= 0 , int fs= 9 )
    {
      ObjectCreate (nm, OBJ_LABEL , 0 , 0 , 0 );
     ObjectSetText(nm, tx, fs);
     ObjectSet(nm, OBJPROP_COLOR    , cl);
     ObjectSet(nm, OBJPROP_XDISTANCE , xd);
     ObjectSet(nm, OBJPROP_YDISTANCE , yd);
     ObjectSet(nm, OBJPROP_CORNER   , cr);
     ObjectSet(nm, OBJPROP_FONTSIZE , 18 );
    }

Nesneyi yeniden yaratmaktan korkmayın. Optimize edilmiştir. Bir nesne oluşturulursa, yalnızca değişen özellikleri değiştirir. Onlar. yeniden yaratılmaz.

Kıvrımlı parantezleri aynı seviyeye koyun, aksi takdirde ne yazdığını, blokların nerede başlayıp nerede bittiğini hemen anlamayacaksınız.

Elbette ColorOnSign() parametresiyle ilgili sorunlar var. Parametre double, ancak dize eklersiniz.

SetLabel( "ЧИСЛО" , lots, ColorOnSign(StrToDouble(lots)), 5 , 7 , 1 );

veya

 color ColorOnSign( string sLots)
 {
   double nu = StrToDouble(sLots);
   color lcColor=Navy;
   if (nu< 4 ) lcColor=Green;
   if (nu> 6 ) lcColor=Red;
   return (lcColor);
 }
 

Güzel gün! Çözmeme yardım et ve mümkünse bana kodu söyle.

Baykuşta aşağıdaki trolüm var ->

         for ( int v = OrdersTotal () - 1 ; v >= 0 ; v -- ){       
                 if ( OrderSelect (v, SELECT_BY_POS, MODE_TRADES)){           
                         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic){ 
                                 //+=================================================================================+
                                 ///+================================Обычный трал ====================================+
                                 if (TralSimple){
                                         if (OrderType() == OP_SELL){
                                                 if ((OrderOpenPrice()-Ask) > ( Point *TrailingStop)){ 
                                                         if ((OrderStopLoss() > (Ask+ Point *TrailingStop)) || (OrderStopLoss()== 0 )){
                                                                OrderModify(OrderTicket(),OrderOpenPrice(),Ask+ Point *TrailingStop,OrderTakeProfit(), 0 ,Red);
                                                        }
                                                }
                                        }
                                         //+=================================================================================+
                                         if (OrderType() == OP_BUY){
                                                 if ((Bid-OrderOpenPrice()) > ( Point *TrailingStop)){
                                                         if (OrderStopLoss() < Bid- Point *TrailingStop || (OrderStopLoss()== 0 )){
                                                                OrderModify(OrderTicket(),OrderOpenPrice(),Bid- Point *TrailingStop,OrderTakeProfit(), 0 ,Blue);  
                                                        }
                                                }
                                        }
                                }                                  
--------------------------------------------

Şimdi sondaki, her pozitif onay işaretinden sonra durdurmayı hareket ettirir. Bunu şu şekilde yapmak istiyorum:

ilk geçiş - pozitif bir tik ile iz, durağı 1 puan ve çiftin ne kadar yükseldiğini hareket ettirir.

ikinci geçiş - cilt geçişi sırasında 1 artacak bir x değişkeni alın ve belirli bir adım ayarlayın (5). ve her geçişte (adım)*x

vb.

Soru, artan bir çarpanla bu adımı oraya nasıl vidalayacağımızdır. Ve birkaç pozisyon olması durumunda, bu çarpan her pozisyon için farklı olacak şekilde

 
berezhnuy :

Güzel gün! Çözmeme yardım et ve mümkünse bana kodu söyle.

Baykuşta aşağıdaki trolüm var ->

Şimdi sondaki, her pozitif onay işaretinden sonra durdurmayı hareket ettirir. Bunu şu şekilde yapmak istiyorum:

ilk geçiş - pozitif bir tik ile iz, durağı 1 puan ve çiftin ne kadar yükseldiğini hareket ettirir.

ikinci geçiş - cilt geçişi sırasında 1 artacak bir x değişkeni alın ve belirli bir adım ayarlayın (5). ve her geçişte (adım)*x

vb.

Soru, artan bir çarpanla bu adımı oraya nasıl vidalayacağımızdır. Ve birkaç pozisyon olması durumunda, bu çarpan her pozisyon için farklı olacak şekilde


Temel noktaya göre parabolik, hesaplama gibi bir şey yapın - fiyat ve açılış zamanı
Neden: