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

 
Vitaly Muzichenko :

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

 
trader781 :

ş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?
 
Alekseu Fedotov :

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, bu dosyalarla işlemleri kullanmak için test modunda hatalar meydana geliyor.
 
Top2n :
İ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.

 
Alexey Viktorov :

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 InpFileName= "data.bin" ;
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

 
Top2n :

Pekala, FileOpen () tarafından kullanılan bir Bayrağım var

input string InpFileName= "data.bin" ;
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.


 
Alexey Viktorov :

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.


iletişimim var teşekkürler
 
Merhaba!
Lütfen bana #property katı özelliği hakkında nerede okuyabileceğimi söyleyin?
 
Leo59 :
Merhaba!
Lütfen bana #property katı özelliği hakkında nerede okuyabileceğimi söyleyin?
Örneğin burada https://docs.mql4.com/en/basis/preprosessor/compilation
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
  • docs.mql4.com
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
Neden: