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

 
ToLik_SRGV :

Söve aşikardır, elbette, her tikte pozisyon açar, çünkü tarihte kaybedilen bir düzen hiçbir yere gitmez, bu nedenle her tikte bulur ve konunun kontrol değişkenlerinin değerlerini, konuyla ilgili kontrol değişkenlerinin değerlerini doldurur. aynı değerler ve ardından anlaşmaları açma bloğu tetiklenir.


ama nasıl yapılır Schaub, bir daha aramadı ya da daha doğrusu, daha önce çözülmüş olanı aramadı

 
FoxUA :

ama nasıl yapılır Schaub, bir daha aramadı ya da daha doğrusu, daha önce çözülmüş olanı aramadı

Bu bloğu kaldır:

 for ( int cnt=OrdersHistoryTotal();cnt> 0 ;cnt--)
     {
 OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY);
{ if (OrderMagicNumber()== mag &&
OrderSymbol()== Symbol ()) 
{ if (OrderType() == OP_BUY )  {b= 1 ; if (OrderClosePrice()==OrderTakeProfit()) bt= 1 ; 
if (OrderClosePrice()==OrderStopLoss()) bs= 1 ; bl=OrderLots()* 100 ; break ;}
if (OrderType() == OP_SELL)  {s= 1 ; if (OrderClosePrice()==OrderTakeProfit()) st= 1 ; 
if (OrderClosePrice()==OrderStopLoss()) ss= 1 ; sl=OrderLots()* 100 ; break ;}
            }
            
            
         }
      }

Ve bununla değiştirin:

   for ( int cnt=OrdersHistoryTotal();cnt> 0 ;cnt--){
      static int num_ticket;
      if (! OrderSelect (cnt- 1 , SELECT_BY_POS, MODE_HISTORY)) break ;
      if (OrderMagicNumber()== mag && OrderSymbol()== Symbol ()){      
      if (num_ticket != OrderTicket())num_ticket = OrderTicket(); else break ;
         if (OrderType() == OP_BUY){
            b= 1 ;
            if (OrderClosePrice()==OrderTakeProfit())bt= 1 ;
            if (OrderClosePrice()==OrderStopLoss())bs= 1 ;
            bl=OrderLots()* 100 ;
            num_ticket = OrderTicket();
            break ;
         }
         if (OrderType() == OP_SELL){
            s= 1 ;
            if (OrderClosePrice()==OrderTakeProfit())st= 1 ; 
            if (OrderClosePrice()==OrderStopLoss())ss= 1 ;
            sl=OrderLots()* 100 ;
            num_ticket = OrderTicket();
            break ;
         }
      }
   }

Diğer şeylerin yanı sıra, sırasıyla son kaybedilen ticaretin bilet numarasını hatırlaması, kontrol etmesi ve aynı sinyalde açılmasına izin vermemesi bakımından farklılık gösterir.

 
ToLik_SRGV :

Bu bloğu kaldır:


test için çok teşekkür ederim her şey işe yarıyor

 
Abzasc :

Böyle bir şey galiba.

PS "SRC" kod ekleme düğmesini kullanın, okunması uygun değildir.


Çok teşekkürler ! bool yerine UseHourTrade2 için int yazdım))
 

Arkadaşlar, iyi günler.

Aşağıdaki konu hakkında size danışmak istiyorum:

Şimdi ikinci döviz çiftinde oluşan okumaları (ZigZag) ilk döviz çiftinin penceresine aktaran bir gösterge üzerinde çalışıyorum.

ancak bir sorunla karşılaştı:

örneğin, tırnaklarda büyük bir "boşluk" varsa: bir çift 1.4237 ve diğeri 0.8345 olarak alıntılanırsa, bu göstergeler ekran boyunca "dağılır" ve bu görsel olarak pek uygun değildir...

göstergenin "koordinatlarını", ilkinin tekliflerini dikkate alarak ikinci çiftten nasıl dönüştürebilirim (fiyat "göreceli" nasıl yapılır?

Tavsiyeniz ve tavsiyeniz için şimdiden teşekkürler.

 
Morzh09 :

Arkadaşlar, iyi günler.

Aşağıdaki konu hakkında size danışmak istiyorum:

Şimdi ikinci döviz çiftinde oluşan okumaları (ZigZag) ilk döviz çiftinin penceresine aktaran bir gösterge üzerinde çalışıyorum.

ancak bir sorunla karşılaştı:

örneğin, tırnaklarda büyük bir "boşluk" varsa: bir çift 1.4237 ve diğeri 0.8345 olarak alıntılanırsa, bu göstergeler ekran boyunca "dağılır" ve bu görsel olarak pek uygun değildir...

göstergenin "koordinatlarını", ilkinin tekliflerini dikkate alarak ikinci çiftten nasıl dönüştürebilirim (fiyat "göreceli" nasıl yapılır?

Tavsiyeniz ve tavsiyeniz için şimdiden teşekkürler.

Bağlantıya bakın. Ölçeklendirmenin kendisi başlangıçta orada yapılır.

https://www.mql5.com/ru/code/7933

 

Merhaba!

Lütfen söyle bana nasıl kolaylaştırabilirim

if (Bakiye > 600)

{

lot_mod = 0.1;

}

if (Bakiye > 700)

{

lot_mod = 0.11;

}

if (Bakiye > 800)

{

lot_mod = 0.12;

}

if (Bakiye > 900)

{

lot_mod = 0.13;

}

Ve böyle devam eder .... Ve sonra bu formda çok kapsamlı bir şekilde ortaya çıkıyor.

Teşekkür ederim!

 
Lim1 :

Merhaba!

Lütfen söyle bana nasıl kolaylaştırabilirim

Ve böyle devam eder .... Ve sonra bu formda çok kapsamlı bir şekilde ortaya çıkıyor.

Teşekkür ederim!





y=a*x+b gibi bir denklem yardımcı olacaktır
 
Lim1 :

Merhaba!

Lütfen söyle bana nasıl kolaylaştırabilirim





lotu hesaplamak için formülü tanımlayın ve hepsi bu, aksi takdirde banyo yapmanız gerekecek
 

Lim1 , şöyle deneyin:

 int BalanceExcessIn100s = MathFloor ( ( Balance - 600 ) / 100.01 );
Lot_mod = BalanceExcessIn100s * 0.01 + 0.1 ;