MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 68
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Zaten boyutsuzdur, ancak iki boyutludur ve boyutsuz sayıda öğeyi iki boyuta koyabilirsiniz.
Genel olarak ne yaparsınız, yaptığınız işin sonucunun ne olması gerektiğine dair bir fikriniz var mı? Yoksa ilerledikçe mantık mı icat ediyorsun?
şu anki örnekte, herhangi bir lotla sonsuzsayıda sipariş koyabilmek istiyorum, böylece ötesine geçilmesin
tabi ki sınırları biliyoruz ve herkes farkında ama ben böyle istiyorum
Parantez içinde bir öğe belirtirseniz, o zaman son olacağı gerçeğinden yola çıkıyorum.
İşte bu saçmalığı aldığım şey. Kalabalığı sırayla görmesi bekleniyordu... Çok mu? böylece çok yerine sonucu sıraya ekliyorum (bir sürü şöyle böyle bir düzen * katsayısı)
ve oradan veri çıkarma sorusu
hayal ettiğim gibi olmak istiyorum
Dizim[0][0.01]
Dizim[1][0.01]
Dizim[2][0.02]
vb...
void CalcOrders()
{
int CountOrders= 0 ;
double MyArray [ 99 ][ 99 ];
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
&& ( OrderMagicNumber ()==Magic) && ( OrderType ()== OP_SELL ))
CountOrders++;
ArrayResize (MyArray,CountOrders+ 1 );
MyArray[CountOrders][ 0 ]= OrderLots ();
Print ( "MyArray[CountOrders][0]" ,MyArray[CountOrders][ 0 ]);
}
}
2017.01 . 13 12 : 51 : 14.372 2017.01 . 05 16 : 30 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.02
2017.01 . 13 12 : 51 : 14.372 2017.01 . 05 16 : 25 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.01
2017.01 . 13 12 : 51 : 14.372 2017.01 . 05 16 : 25 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.02
2017.01 . 13 12 : 51 : 14.371 2017.01 . 05 16 : 20 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.01
2017.01 . 13 12 : 51 : 14.371 2017.01 . 05 16 : 20 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.02
2017.01 . 13 12 : 51 : 14.371 2017.01 . 05 16 : 15 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.01
şu anki örnekte, herhangi bir lotla sonsuzsayıda sipariş koyabilmek istiyorum, böylece ötesine geçilmesin
tabi ki sınırları biliyoruz ve herkes farkında ama ben böyle istiyorum
Parantez içinde bir öğe belirtirseniz, o zaman son olacağı gerçeğinden yola çıkıyorum.
İşte bu saçmalığı aldığım şey. Kalabalığı sırayla görmesi bekleniyordu... Çok mu? böylece çok yerine sonucu sıraya ekliyorum ( çok falan böyle bir düzen * katsayısı)
ve oradan veri çıkarma sorunu
void CalcOrders()
{
int CountOrders= 0 ;
double MyArray [ 99 ][ 99 ];
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
&& ( OrderMagicNumber ()==Magic) && ( OrderType ()== OP_SELL ))
CountOrders++;
ArrayResize (MyArray,CountOrders+ 1 );
MyArray[CountOrders][ 0 ]= OrderLots ();
Print ( "MyArray[CountOrders][0]" ,MyArray[CountOrders][ 0 ]);
}
}
2017.01 . 13 12 : 51 : 14.372 2017.01 . 05 16 : 30 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.02
2017.01 . 13 12 : 51 : 14.372 2017.01 . 05 16 : 25 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.01
2017.01 . 13 12 : 51 : 14.372 2017.01 . 05 16 : 25 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.02
2017.01 . 13 12 : 51 : 14.371 2017.01 . 05 16 : 20 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.01
2017.01 . 13 12 : 51 : 14.371 2017.01 . 05 16 : 20 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.02
2017.01 . 13 12 : 51 : 14.371 2017.01 . 05 16 : 15 : 00 martin GBPUSD,M5: MyArray[CountOrders][ 0 ] 0.01
Açıkla, lütfen, neye ihtiyacın var?
Her şeyi bir diziye aktaralım, o zaman ne olacak?
Diziyi bükeceğiz, içinde ihtiyacınız olan pozisyonu arayacağız, ne?
Alım satım sekmesine bakıldığında, hangi pozisyonun bir tanımı var veya gözle bakılıyor, evet, 6'ya ihtiyacınız var, değil mi?Açıkla, lütfen, neye ihtiyacın var?
Her şeyi bir diziye aktaralım, o zaman ne olacak?
Diziyi bükeceğiz, içinde ihtiyacınız olan pozisyonu arayacağız, ne?
Alım satım sekmesine bakıldığında, hangi pozisyonun bir tanımı var veya gözle bakılıyor, evet, 6'ya ihtiyacınız var, değil mi?OnTick()
pozisyon açma koşulu doğruysa
{açık pozisyon}
pozisyon doğru açılırsa
{çok ekleyin}
Son lot konum 2 ise - lot *1.5 ekleyin (ikincisini sonuncuyu bulma işlevinden alırız) ve bu üçüncüdür
eğer bu dördüncü sipariş ise
{sıfır lot+ilk lot} tamamla
eğer bu beşinci sipariş ise
kontör {lot 1 pozisyon + lot üçüncü}
Şu anda listede son pozisyonun tanımları var
Bunu bir diziye yazıp hemen doğru olanı çıkarmak gerekiyor, çünkü şu anda başka bir uygulama yolu görmüyorum, bu yüzdenemir ve pozisyon sayısı teorik olarak sonsuz olmalı
Bu yüzden fonksiyonda ne yaptığımı gösterdim, doğru mu değil mi bilmiyorum.
bu nedenle, verileri bir şekilde çıkarmam ve hangi hesabı açacağımı önceden bilmem gerekiyor.
sistemin genel olarak çalıştığını nasıl iddia etsem de, uygulamanın kendisi önemlidir
İyi zaman. Danışmanı test etmeniz gerekip gerekmediğini ve bitleri ve csv dosyalarını yazmak ve okumak için komutları kullanıp kullanmadığını söyleyin, bildiğiniz gibi, dosya işlemlerini kullanmak için test modunda hatalar meydana geliyor.
Hiçbir hata oluşmaz. Bayrak kullanılmıyorsa yalnızca başka bir klasöre yazılır
FILE_COMMON
4096
Tüm istemci terminalleri \Terminal\Common\Files'ın ortak klasöründeki dosya konumu. Bayrak, dosyaları açarken (FileOpen()), dosyaları kopyalarken (FileCopy(), FileMove()) ve dosyaların varlığını kontrol ederken (FileIsExist()) kullanılır.
Hiçbir hata oluşmaz. Bayrak kullanılmıyorsa yalnızca başka bir klasöre yazılır
FILE_COMMON
4096
Tüm istemci terminalleri \Terminal\Common\Files'ın ortak klasöründeki dosya konumu. Bayrak, dosyaları açarken (FileOpen()), dosyaları kopyalarken (FileCopy(), FileMove()) ve dosyaların varlığını kontrol ederken (FileIsExist()) kullanılır.
Pekala, FileOpen () tarafından kullanılan bir Bayrağım var
input string InpDirectoryName= "" ;
string path=InpDirectoryName+ "//" +InpFileName;
C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files
5004:ERR_FILE_CANNOT_OPEN = Dosya açılırken hata oluştu
Pekala, FileOpen () tarafından kullanılan bir Bayrağım var
input string InpDirectoryName= "" ;
string path= InpDirectoryName+ "//" + InpFileName;
C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files
5004:ERR_FILE_CANNOT_OPEN = Dosya açılırken hata oluştu
FileOpen() bir bayrak değil... Bayrak FILE_COMMON
Ayrı bir klasöre yazmak istemiyorsanız, boş bir dize olarak yolda belirtmeniz gerekmez. İsteğe bağlı sarı renkle vurgulanmıştır.
FileOpen() bir bayrak değil... Bayrak FILE_COMMON
Ayrı bir klasöre yazmak istemiyorsanız, boş bir dize olarak yolda belirtmeniz gerekmez. İsteğe bağlı sarı renkle vurgulanmıştır.
Lütfen bana #property katı özelliği hakkında nerede okuyabileceğimi söyleyin?
Merhaba!
Lütfen bana #property katı özelliği hakkında nerede okuyabileceğimi söyleyin?