Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 486

 

Soru - test eden kişi takası dikkate alıyor mu?

Excel'de bir hesaplama yaptı (cent hesabı), garip bir sonuç aldı

Hayır. Veri Türü Lot Fiyatı MaxYüksek MaxEqDrd
1 2014.06.12 09:52 sat 0.1 1.6824 0.16824 1.7179 -3.55
2 2014.06.12 15:18 sat 0,2 1.6831 0.33662 1.7179 -6.96
3 2014.06.12 17:52 sat 0,3 1,6836 0,50508 1,7179 -10,29
4 2014.06.12 19:10 Sat 0,5 1.6839 0.84195 1.7179 -17.00
5 2014.06.12 23:00 sat 0,8 1.6845 1.3476 1.7179 -26.72
6 2014.06.16 09:59 sat 1,3 1.6985 2.20805 1.7179 -25.22
7 2014.06.19 09:58 sat 2.1 1.7017 3.57357 1.7179 -34.02
8 2014.06.19 11:21 sat 3.4 1.7018 5.78612 1.7179 -54.74
9 2014.06.19 20:40 Sat 5.5 1.7033 9.36815 1.7179 -80.30
10 2014.06.19 22:12 satış 8.9 1.7036 15.16204 1.7179 -127.27
11 2014.06.20 05:10 sat 14.4 1.7047 24.54768 1.7179 -190.08
12 2014.06.20 05:22 sat 23.3 1.7049 39.72417 1.7179 -302.90
13 2014.06.26 12:38 sat 37.7 1.7030 64.2031 1.7179 -561.73
14 2014.06.26 15:18 satış 61.0 1.7033 103.9013 1.7179 -890.60
15 2014.06.27 06:51 sat 98.7 1.7050 168.2835 1.7179 -1273.23
16 2014.06.30 17:37 sat 100.0 1.7079 170.79 1.7179 -1000.00
17 2014.06.30 17:37 sat 59.7 1.7079 101.96163 1.7179 -597.00
18 2014.07.01 09:03 sat 100.0 1.7100 171 1.7179 -790.00
19 2014.07.01 09:03 sat 100.0 1.7100 171 1.7179 -790.00
20 2014.07.01 09:03 satış 58,4 1.7100 99.864 1.7179 -461.36
21 2014.07.01 11:30 sat 100.0 1.7110 171.1 1.7179 -690.00
22 2014.07.01 11:30 sat 100.0 1.7110 171.1 1.7179 -690.00
23 2014.07.01 11:30 sat 100.0 1.7110 171.1 1.7179 -690.00
24 2014.07.01 11:30 sat 100.0 1.7110 171.1 1.7179 -690.00
25 2014.07.01 11:30 sat 18.1 1.7110 30.9691 1.7179 -124.89
26 2014.07.02 02:33 sat 100.0 1.7145 171.45 1.7179 -340.00
27 2014.07.02 02:33 sat 100.0 1.7145 171.45 1.7179 -340.00
28 2014.07.02 02:33 sat 100.0 1.7145 171.45 1.7179 -340.00
29 2014.07.02 02:33 sat 100.0 1.7145 171.45 1.7179 -340.00
30 2014.07.02 02:33 sat 100.0 1.7145 171.45 1.7179 -340.00
31 2014.07.02 02:33 sat 100.0 1.7145 171.45 1.7179 -340.00
32 2014.07.02 02:33 sat 76,5 1.7145 131.15925 1.7179 -260.10
33 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
34 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
35 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
36 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
37 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
38 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
39 2014.07.02 11:32 Sat 100.0 1.7176 171.76 1.7179 -30.00
40 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
41 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
42 2014.07.02 11:32 sat 100.0 1.7176 171.76 1.7179 -30.00
43 2014.07.02 11:32 sat 94.6 1.7176 162.48496 1.7179 -28.38
Toplam: 2865.5 4909.88611 -12756.34
Ortalama açılış fiyatı -> 1.7134

Yüksek 07/04/2014 1.7179

Puan cinsinden düşüş -> 0.0045
Para biriminde düşüş -> 12756.34

-> 13823.00 koduna göre düşüş
Test kullanıcısı raporuna göre düşüş -> 23669.03

TP -> 1.7084
Puan olarak kar -> 0.0050
Hesaplamaya göre kâr - > 14465,91

Rapora göre kar - > 13915.05


Düşüş nasıl birleşmiyor - özellikle testçinin raporuyla? Daha önce kapalı pozisyon yoktu!

 

Grafik böyle görünüyor



 
Hesaplamayı excel'e ekledim - belki orada aptallaştım!?
Dosyalar:
Calculation.zip  104 kb
 

-Aleks- :

Global değişken, piyasadaki gerçek çalışmayla ilgilidir - Test bilgilerine ihtiyacım var - bu yüzden zahmet etmedim.

GlobalVariable'dan bahsetmiyordum, global değişkenlerin seviyesinden bahsediyordum.

-Aleks- :

Öz sermaye ve bakiyenin ne olduğuna gelince -kesinlikle biliyorum ama düşüşün nasıl hesaplandığını - hesaplamak mümkün değildi, kod örneklerimden hem bakiyeyi hem de fonları maksimuma çıkarmaya çalıştığım görülüyor, benzer şekilde , Minimum bakiye ve fon aldım, ancak test cihazı ile benzer sonuçlar elde edilemez - yaklaşık olarak birleşirler, ancak tam olarak değil.

Test cihazında terki hesaplama formülüne gerçekten girmedim, ancak bir sipariş açmadan önceki bakiye ile bir siparişi kapatmadan önce minimum fon miktarı arasındaki farkı hesaplamayı deneyebilirsiniz. Veya hem maksimum hem de minimum fonları göz önünde bulundurun ve maksimum fark maksimum düşüş olacaktır.

-Aleks- :

Neden eşitsizliğin (BalansNew<BalansMax) ProfitNew=BalansNew-BalansMax; hiç idam edilmedi mi? Yeni bir yüksek bakiyeye ulaşıldığında (veya öz sermaye - bu zaten doğru değil) barda yürütülmez, ancak o anda bir kâr düşüşü ProfitMin=ProfitNew'i düzeltirim.

Günde bir dosya kaydetmek sadece daha önemlidir - maksimum düşüşe ulaşıldığından, kural olarak, sipariş kapatıldığı anda değil, amaç, danışmanın çalışması için gereken ortalama fon miktarını hesaplamaktır.

Katılıyorum, burada yeterince dikkatli değildim.

Bir dosyaya yazma sıklığı tamamen kişisel bir konudur, ancak düşüş günlük olarak değil, siparişin (ler) ömrü boyunca dikkate alınır ve daha sonra fonlar bir bakiye haline gelir. Bunlar tam olarak, test çizelgesindeki fon ve bakiye satırlarının bir noktada olduğu yerlerdir.

 
Alexey Viktorov :

GlobalVariable'dan bahsetmiyordum, global değişkenlerin seviyesinden bahsediyordum.

Görünüşe göre sizi yanlış anladım - değişkenlerim int start() kod yürütme bloğundan önce başlatılıyor, bu nedenle üzerine yazma veya bunun gibi bir sorun olmamalı ... veya başka bir neden var mı?


Alexey Viktorov :

Test cihazında terki hesaplama formülüne gerçekten girmedim, ancak bir sipariş açmadan önceki bakiye ile bir siparişi kapatmadan önce minimum fon miktarı arasındaki farkı hesaplamayı deneyebilirsiniz. Veya hem maksimum hem de minimum fonları göz önünde bulundurun ve maksimum fark maksimum düşüş olacaktır.

Ve çok fazla sipariş varsa, her sipariş için sayın ve en büyük seçeneği seçin? Örneğimde, hesaplanan düşüşün test cihazının sonucuna göre neredeyse iki kat daha az olduğu ve algoritmanıza göre daha da az olacağı görülebilir - gerçeğe pek benzemez.

Alexey Viktorov :

Bir dosyaya yazma sıklığı tamamen kişisel bir konudur, ancak düşüş günlük olarak değil, siparişin (ler) ömrü boyunca dikkate alınır ve daha sonra fonlar bir bakiye haline gelir. Bunlar tam olarak, test çizelgesindeki fon ve bakiye satırlarının bir noktada olduğu yerlerdir.

Test cihazının düşüşü ne zaman dikkate aldığı önemli değil - gerçek şu ki, belirli bir günde maksimum olacak ve sonuç eşleşmeli, ancak eşleşmemeli - ve bu şaşırtıcı.

Alım satım portföyünü kontrol etmek için günlük bir düşüşe ihtiyacım var - bir kerede ve ne sıklıkla ihtiyaç duyulabileceğini anlamak için.

 

Matematiksel olarak (sonuç, 23669.03 test cihazına karşı 23497.1'lik bir düşüştür), düşüş, mevduattaki değişikliği simgeleyen segmentin boyutuna yakındır - yani. maksimum öz sermaye değeri ile minimum öz sermaye değeri arasındaki fark.

 
-Aleks- :

Görünüşe göre sizi yanlış anladım - değişkenlerim int start() kod yürütme bloğundan önce başlatılıyor, bu nedenle üzerine yazma veya bunun gibi bir sorun olmamalı ... veya başka bir neden var mı?


Ve çok fazla sipariş varsa, her sipariş için sayın ve en büyük seçeneği seçin? Örneğimde, hesaplanan düşüşün test cihazının sonucuna göre neredeyse iki kat daha az olduğu ve algoritmanıza göre daha da az olacağı görülebilir - gerçeğe pek benzemez.

Test cihazının düşüşü ne zaman dikkate aldığı önemli değil - gerçek şu ki, belirli bir günde maksimum olacak ve sonuç eşleşmeli, ancak eşleşmemeli - ve bu şaşırtıcı.

Alım satım portföyünü kontrol etmek için günlük bir düşüşe ihtiyacım var - bir kerede ve ne sıklıkla ihtiyaç duyulabileceğini anlamak için.

Kesinlikle bu şekilde değil. Her sipariş için değil, ilkinin açılışından sonuncusunun kapanışına kadar. Yani, OrdersTotal() == 0'dan OrdersTotal() == 0'a

Kesintiyi tam olarak ilk emrin açıldığı andan sonuncunun kapanmasına kadar belirlemek gerekir, çünkü. gerçek hayatta, fırlatma 0:00'da değil, sırasıyla herhangi bir zamanda olacak ve gün değişiminde bir düşüş olabilir.

Diğer her şey... Başkalarının araştırmalarını anlamaktan hoşlanmıyorum, tıpkı uzun kodlarda olduğu gibi, herhangi bir sorunu çözmenin yollarını tartışabilirim, ancak kod örnekleriyle değil. Düşüşün nasıl değerlendirildiğiyle ilgili varsayımlarımı kimsenin düzeltmemiş olması garip...

Genel olarak, düşüşü hesaplama yönteminizi beğenmedim. Bana öyle geliyor ki, bir şeyi o kadar sık basıyor ki, daha sonra anlamak için özel bir sabrınız olması gerekiyor.

 

Karputov Vladimir :
Не кусок, а программу, которую можно скомпилировать и прогнать в режиме отладки .

Sorun için özür dilerim, test cihazını durdurma sorununu bulmak için programı temizlerken, programın metninde çalışmasının algoritmasının ihlali buldum. Derleme normal bir şekilde devam etti, ancak test cihazı hatanın yerini göstermeden durdu
 
Alexey Viktorov :

Kesinlikle bu şekilde değil. Her sipariş için değil, ilkinin açılışından sonuncusunun kapanışına kadar. Yani, OrdersTotal() == 0'dan OrdersTotal() == 0'a

Kesintiyi tam olarak ilk emrin açıldığı andan sonuncunun kapanmasına kadar belirlemek gerekir, çünkü. gerçek hayatta, fırlatma 0:00'da değil, sırasıyla herhangi bir zamanda olacak ve gün değişiminde bir düşüş olabilir.

Dolayısıyla, incelenen örnekte, bu koşullar karşılanmaktadır - siparişler açıktır ve her onayda kapanana kadar izlenir.

Hesaplama gerçekten maksimum öz kaynaktan minimum öz sermayeye gidiyorsa, bu sökmeler test cihazının okumalarını yeniden düşünmeme yardımcı olacak...

Alexey Viktorov :

Genel olarak, düşüşü hesaplama yönteminizi beğenmedim. Bana öyle geliyor ki, bir şeyi o kadar sık basıyor ki, daha sonra anlamak için özel bir sabrınız olması gerekiyor.

Danışmanın çalışması için gerçekten ne kadar paraya ihtiyaç olduğunu merak ediyorum - yani. kayıp karlar hariç, emrin açıldığı andan kapanana kadar gerçek düşüş (cari zarar).

Günde bir kez yazdırır - bu genellikle hiç değildir, belirli amaçlar için gereklidir.

 
Merhaba!

İlk bakışta, görev üç kuruş kadar basit. ANCAK!....
Gösterge penceresinde, farklı genliklerle "0"a göre sallanan herhangi bir osilatör çizgisi vardır.
Aslında görev şudur:
- "0"ı aşağıdan yukarıya geçerken, gösterge penceresinin alt kenarına bir ok çizin,
- "0"ı yukarıdan aşağıya geçerken, gösterge penceresinin üst sınırına bir ok çizin,
- gösterge penceresindeki osilatör tablosunu kendi kendine ölçeklerken, oklar otomatik olarak gösterge penceresinin sınırlarında kalmalıdır.
Onlar. geçmiş grafiğinde ileri geri kaydırma veya yatay ölçeğini değiştirme, oklar otomatik olarak gösterge penceresinin sınırlarında her zaman kalmalıdır.

Büyük bir istek, tavsiye vermeyin , "maddi olarak yardım edin")). Böyle bir işlevi uygulayan çalışan bir kod örneğine veya bir bağlantıya ihtiyacımız var.

Şimdiden teşekkürler!
Neden: