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

 

Tünaydın,

EA test sırasında bu dosyalarla çalışırken, dosya yazma/okuma dizinini "Test Edici/Dosyalar"dan "MQL/Dosyalar"a değiştirmek mümkün müdür?

 
Asa saas :

Tünaydın,

EA test sırasında bu dosyalarla çalışırken, dosya yazma/okuma dizinini "Test Edici/Dosyalar"dan "MQL/Dosyalar"a değiştirmek mümkün müdür?

MQL aracılığıyla - hiçbir şekilde, yalnızca WinAPI aracılığıyla.

 

Cevap için teşekkürler!

 
PolarSeaman :

Artışlarla bir lotun hacmi nasıl hesaplanır? Depozit =1000, lot =0,1 ise, mevduat 2000 lot = 0,2 oldu. Yani 1500 veya 1700'lük bir depo ile lot artmaz.

lot = MathCeil (depo / 1000 ) * 0.1 ;
 
Ihor Herasko :

MQL aracılığıyla - hiçbir şekilde, yalnızca WinAPI aracılığıyla.

asa saas :

Cevap için teşekkürler!

Bu durumda, FILE_COMMON bayrağını kullanmak daha iyidir ve ardından dosyalar hem test cihazından hem de terminalden erişilebilir olacaktır. Ağ üzerinde test ederken yalnızca sorunlar mümkündür. Ama kişisel olarak test etmedim.

FileOpen - Файловые операции - Справочник MQL4
FileOpen - Файловые операции - Справочник MQL4
  • docs.mql4.com
[in]  Имя открываемого файла, может содержать подпапки. Если файл открывается для записи, то указанные подпапки будут созданы в случае их отсутствия. [in]  значение, используемое в качестве разделителя в txt или csv-файле. Если для csv-файла разделитель не указан, то по умолчанию используется ";". Если для txt-файла разделитель не указан, то...
 

Taras Slobodyanik :

lot = MathCeil (depo / 1000 ) * 0.1 ;

Sayalım:

Depozit = 1700. 1000'e bölerek 1.7 elde ederiz ve yukarıdan en yakın tamsayıya yuvarlarız, 2 elde ederiz.

0,1 ile çarpıyoruz ve sonuç istediğimiz gibi değil.

Görünüşe göre en yakın küçük tam sayı MathFloor'a yuvarlamak daha iyidir

MathFloor - Математические функции - Справочник MQL4
MathFloor - Математические функции - Справочник MQL4
  • docs.mql4.com
MathFloor - Математические функции - Справочник MQL4
 
PolarSeaman :

Hayır, 1100 depo ile lot 0.11 olacak ama 2000 yılına kadar lotun artmamasına ihtiyacım var. Ayarlarda adım = 1000'i nasıl ayarlayabilirim?

Düzeltildi.

 double percentLot = 0.01 ,
       lot = NormalizeDouble ( MathFloor ( AccountInfoDouble ( ACCOUNT_BALANCE )*percentLot/ 10 )/ 10 , 1);

İlkenin kendisi var olmasına rağmen, bunlar zaten nüanslar

 
Alexey Viktorov :

Sayalım:

Depozit = 1700. 1000'e bölerek 1.7 elde ederiz ve yukarıdan en yakın tamsayıya yuvarlarız, 2 elde ederiz.

0,1 ile çarpıyoruz ve sonuç istediğimiz gibi değil.

Görünüşe göre en yakın küçük tam sayı MathFloor'a yuvarlamak daha iyidir

veya 1000 yerine 1999.99 girin)

1000 ve 0.1 harici değişkenlerdir

 
Ve herkes 0.1'e yapıştı. Bugün bir kişinin 0,1'e ihtiyacı var, yarın 0,5 istiyor. Yüzdeye dayalı olmalıdır. Akılda katı bir bağlanma, işe yaramaz.
 

Teşekkürler, bunu yaptım:

   input double _lot= 0.1 ;
   input int _depo= 1000 ;
//***************************
   lot= MathFloor ( AccountInfoDouble ( ACCOUNT_BALANCE )/_depo)*_lot;
   lot= NormalizeDouble (lot, 2 );

Umarım int türünde _depo'yu doğru ayarlamışımdır.