MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 53

 
#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 1
#özellik göstergesi_color1 Mavi
//------------------------------------------------ --------------------
doubleBuffer[];
//------------------------------------------------ --------------------
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM, BOŞ,2);
SetIndexBuffer(0,Buffer);
dönüş(0);
}
// ------------------------------------------------ --------------------
int tanım()
{
dönüş(0);
}
//------------------------------------------------ --------------------
int başlangıç()
{
int StartBar = Çubuklar - IndicatorCounted() - 1;
for(int i = StartBar; i >= 0; i--)
Tampon[i] =( iClose ("EURGBP",0,i)-iOpen("EURGBP",0,i))/MarketInfo("EURGBP",MODE_POINT)+
(iClose("EURAUD",0,i)-iOpen("EURAUD",0,i))/MarketInfo("EURAUD",MODE_POINT);
dönüş(0);
}

//------------------------------------------------ ---------------------

Üzgünüm, metni nasıl kodlayacağımı bilmiyorum.

Bu, herhangi bir enstrümanın basit bir sayaç göstergesidir (mevcut TF-me üzerindeki noktalarda enstrüman gövdelerinin toplamı). Histogramın her sütunu "O" ile başlar ve zaman diliminin sonunda biter. Örneğin, mevcut TF H1, 12.00'de "0" ve 13.00'de "+20" gösteriyor ve histogram çubuğu açıkça =+20. ancak bu saat boyunca okumalar hem -50 hem de +60 idi, ancak gösterge bunları göstermiyor, minimum Buffer[i] ve maksimum Buffer[i] için bir arabellek eklemeniz gerekiyor. Yüksek ve Düşük kullanamazsınız, çünkü göstergede belirtilen her enstrüman için bu değerler farklı zamanlarda oluşur. Bu nedenle, ikinci tamponun mevcut grafikteki (H1) daha küçük grafiğin (M5) Tampon[i] maksimum değerini sabitlemesi ve üçüncü tamponun daha küçük grafiğin Tampon[i] minimum değerini sabitlemesi gerekir. (M5) mevcut grafikte (H1) . Sevgili, kim tavsiyede bulunabilir?

 
vitek2010 :

Üzgünüm, metni nasıl kodlayacağımı bilmiyorum .

Yüksek ve Düşük kullanamazsınız, çünkü göstergede belirtilen her enstrüman için bu değerler farklı zamanlarda oluşur.

Ve her enstrüman için aynı anda Kapat, chtoli, mumun ömrü boyunca gelir??? Yani bu hatalı bir görüş, tiklerin hepsi farklı zamanlarda gelir)))

 
trader781 :
gerçek şu ki, zincirde HER ZAMAN bir tür lot ile kârsız siparişler olacak ve bunların da diğerlerinin pahasına izlenmesi gerekecek. Tetik - kapanma zamanı. En az biri kapalıysa, tüm zincir örtülür. Bu nedenle soru, seçilen tüm fiyatlar için tam olarak ortalama fiyatın nasıl izleneceğidir.

Bu, bir döngüdeki tüm "gerekli" siparişlerin üzerinden geçilmesi ve bu ortalama fiyatın hesaplanması gerektiği anlamına gelir. Ardından, mevcut fiyat hesaplanan ortalamadan doğru yönde saparsa, tüm emirlerin modifikasyonu ile döngüyü yeniden şarj edin.

Her tikte ortalamanın hesaplanmaması için sadece bir sonraki sipariş eklenirken hesaplanabilir.

 
Alexey Viktorov :

Bu, bir döngüdeki tüm "gerekli" siparişlerin üzerinden geçilmesi ve bu ortalama fiyatın hesaplanması gerektiği anlamına gelir. Ardından, mevcut fiyat hesaplanan ortalamadan doğru yönde saparsa, tüm emirlerin modifikasyonu ile döngüyü yeniden şarj edin.

Her tikte ortalamanın hesaplanmaması için sadece bir sonraki sipariş eklenirken hesaplanabilir.

Zor değilse, siparişler ızgarasının eşit olmayan dağılımıyla ortalama fiyatı nasıl hesaplayabileceğimi açıklayın (burada OrderType()<2). Ve hepsi bu.
 
Vitalie Postolache :

Ve her enstrüman için aynı anda Kapat, chtoli, mumun ömrü boyunca gelir??? Yani bu hatalı bir görüş, tiklerin hepsi farklı zamanlarda gelir)))

Kenelerden bahsetmedim, daha küçük bir zaman diliminde hesaplanan gösterge arabelleğinin minimum ve maksimum okumalarını düzeltmeniz gerektiğini söyledim, daha büyük bir zaman dilimi aralığında bunu ekranda göstermeye çalışacağım bunlar farklı TF'lerin pencereleri):

[img]https://charts.mql5.com/13/642/eurgbp-w1-instaforex-group.png[/img]

Değerlendirme için, 05.12 haftasını alacağım (kırmızı artı işareti), yukarıdaki göstergeye göre bu histogram, haftanın sonunda çiftlerin toplam hareketinin 95 puan düştüğünü açıkça gösteriyor, ancak artışın ne kadar olduğunu göstermiyor. düşüş ise hafta içinde gerçekleşti.

Ancak bu ekranda, bu hafta boyunca bu göstergenin H1 grafiğindeki hareketinin dinamiklerini görebilirsiniz:

[img]https://charts.mql5.com/13/642/eurgbp-h1-instaforex-group.png[/img]

Göstergenin minimum 400 değerine sahip olduğu, ardından 700 değerine yükseldiği ve 160'ta kapandığı görülebilir (iki ekran görüntüsündeki kapanış rakamları arasındaki fark önemli değil)

Bir göstergede tüm bunların histogramın bir sütununda ve minimum ve maksimum ve kapanışta (bu durumda, haftalık) olması gerekir. ve ideal olarak, o zaman ayarlarda belirtilen TFma'dan mevcut TF-me'de

nedense ekran görüntüleri görüntülenemedi 9 MT4'te MKL5 web sitesini kopyalayarak insta yaptı

 
trader781 :
Zor değilse, siparişler ızgarasının eşit olmayan dağılımıyla ortalama fiyatı nasıl hesaplayabileceğimi açıklayın (burada OrderType()<2). Ve hepsi bu.

umarım anlarsın

for ( int i= 0 ; i< OrdersTotal (); i++) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) {
   if ( OrderSymbol ()== _Symbol && OrderMagicNumber ()==Magic) {
     if ( OrderType ()== OP_BUY ) {
      _BuyProfit+= OrderProfit ()+ OrderSwap ()+ OrderCommission (); // совокупный профит  по всем Sell
      _BuyLot+= OrderLots (); //совокупный лот по всем Sell
    }
     if ( OrderType ()== OP_SELL ) {
      _SellProfit+= OrderProfit ()+ OrderSwap ()+ OrderCommission (); // совокупный профит  по всем Sell
      _SellLot+= OrderLots (); //совокупный лот по всем Sell
    }
}}}

double TickValue= MarketInfo ( _Symbol , MODE_TICKVALUE );

if (_BuyLot  > 0 ) { BuyAwerage = NormalizeDouble ( Bid -(_BuyProfit/(TickValue*_BuyLot))* _Point , _Digits ); } else { BuyAwerage= 0 ; } // безубыток buy
if (_SellLot > 0 ) { SellAwerage= NormalizeDouble ( Ask +(_SellProfit/(TickValue*_SellLot))* _Point , _Digits ); } else { SellAwerage= 0 ; } // безубыток sell
if (_BuyLot-_SellLot! = 0 ) { AllAwerage= NormalizeDouble (((_BuyLot>_SellLot)? Bid : Ask )-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))* _Point ), _Digits ); } else { AllAwerage= 0 ; } // общий безубыток
 
Vitaly Muzichenko :

umarım anlarsın



double TickValue= MarketInfo ( _Symbol , MODE_TICKVALUE );


İşte bu konuda biraz mümkün mü? Bu koddaki anlamını anlamıyorum.
 
trader781 :
İşte bu konuda biraz mümkün mü?

Mevduat para birimi cinsinden enstrümanın fiyatındaki minimum değişikliğin tutarı

Bir puanın değeri her enstrüman için farklıdır ve örneğin EUR/USD için olduğu gibi "1"e eşit değildir.

 
Vitaly Muzichenko :

Mevduat para birimi cinsinden enstrümanın fiyatındaki minimum değişikliğin tutarı

Bir puanın değeri her enstrüman için farklıdır ve örneğin EUR/USD için olduğu gibi "1"e eşit değildir.

ha şimdi anladım

ancak, örneğin (eşitlik=denge*1.1) veya (eşitlik=denge*0.9) bir kayan nokta da ayarlayabileceğiniz ortaya çıktı.

Böyle araçlar var mı?

 
trader781 :

ha şimdi anladım

ancak, örneğin (eşitlik=denge*1.1) veya (eşitlik=denge*0.9) bir kayan nokta da ayarlayabileceğiniz ortaya çıktı.

Böyle araçlar var mı?

Zaten belirli bir fiyatınız var, bundan sadece basit bir yolun analoguna göre takip etmeye devam ediyor, sadece basit bir yol, pozisyon açılış fiyatı = OrderOpenPrice() ve burada hesaplanan ortalama fiyata dayanıyor ve hepsini değiştiriyor. bir seviyeye göre pozisyonlar