[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 24

 
paladin80 :
Aşağıdaki (4, vb.) 3 siparişin 2 x lot ile açılmasını istiyorsanız, o zaman:
evet, her şey doğru, sadece hepsini ikinci koşula sıkıştırmam gerekiyor, bu iki koşul manuel olarak açılıp kapatılıyor if (LotConst_or_not) gd_200 = Lot; (bu ilk koşuldur)

else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;( ikinci koşul)

Bakiyeden lot yerleştirmek yerine , 3 açık siparişle bile sonrakilerin (4, vb.) 2 x lot ile açıldığı bir koşul için düzeltin. Bazı basit işlevler varsa.

 
Lütfen bana bir piyasa emrinin kârını al tetiklendiğinde bekleyen emirleri nasıl kapatacağımı söyle?
 

Tünaydın!

Bana bir dosyadan belirli bir sayının altındaki metin satırını nasıl okuyacağımı söyle.

Temel olarak aşağıdaki kodu kullanabilirim:

 StringSubstr (Text, 0 , 16 );

Örneğin, ilk 16 karakteri okuyun, ancak dizeler farklı uzunluklardaysa ve bir eşleşmeye ihtiyacım varsa

değer1=satır#1;

değer2=satır #2;

Şimdiden teşekkür ederim!

 

Lütfen bana metni değiştirirken bir parçayı yeni bir satıra kaydırabileceğiniz ücretsiz bir Metin Düzenleyici söyleyin.
Teşekkür ederim!

 
forexnew :

Tünaydın!

Bir dosyadan belirli bir sayının altındaki metin satırını nasıl okuyacağımı söyle.

Temel olarak aşağıdaki kodu kullanabilirim:

Örneğin, ilk 16 karakteri okuyun, ancak dizeler farklı uzunluklardaysa ve bir eşleşmeye ihtiyacım varsa

değer1=satır#1;

değer2=satır #2;

Şimdiden teşekkür ederim!



FileReadString (hwd);
 
artem86 :
Lütfen bana bir piyasa emrinin kârını al tetiklendiğinde bekleyen emirleri nasıl kapatacağımı söyle?

Kim'in isCloseLastPosByTake() işlevini alın.

Doğru dönerse, TP çalıştı.

Bağlantıda işlevin kendisine bakın https://www.mql5.com/ru/forum/107476/page21#79908

 
FAQ :

FileReadString(hwd);

Bu durumda, okunmakta olan dizenin uzunluğunu yazmanız gerekir, örneğin:

Str=FileReadString(tanıtıcı); Symbol1=StringSubstr(Str,0, 6 ); ///6 karakter

Str=FileReadString(tanıtıcı); Symbol2=StringSubstr(Str,0, 6 ); ///6 karakter

Ya çizginin uzunluğunu bilmiyorsam veya satırdan satıra değişiyorsa? Onlar. tüm satırın metnini "yakalamak" gerekir.

 
forexnew :

Bu durumda, okunmakta olan dizenin uzunluğunu yazmanız gerekir, örneğin:

Str=FileReadString(tanıtıcı); Symbol1=StringSubstr(Str,0, 6 ); ///6 karakter

Str=FileReadString(tanıtıcı); Symbol2=StringSubstr(Str,0, 6 ); ///6 karakter

Ya çizginin uzunluğunu bilmiyorsam veya satırdan satıra değişiyorsa? Onlar. tüm satırın metnini "yakalamak" gerekir.


Dürüst olmak gerekirse, sorunun ne olduğunu tam olarak anlamıyorum.
Her zaman " string uzunluğu " kontrol edilebilir:

 int StringLen ( string text) 
Возвращает число символов в строке
 
atztek :

Dürüst olmak gerekirse, sorunun ne olduğunu tam olarak anlamıyorum.
"Dize uzunluğunu" her zaman kontrol edebilirsiniz:

Sayesinde! kazanıldı.
 

Girişimin formatına dikkatlice bakıyoruz, orada satırın uzunluğunu belirtmedim, sonra açıklamayı tekrar dikkatlice okuyorum:

string FileReadString(int handle, int length=0)
İşlev, geçerli dosya konumundan bir satır okur. Hem CSV hem de ikili dosyalar için geçerlidir. Metin dosyaları için satır sınırlayıcıya kadar okunacaktır. İkili dosyalar için, belirtilen sayıda karakter dizeye okunur .
Bir hata hakkında bilgi almak için GetLastError() işlevini çağırmanız gerekir .
Seçenekler:
üstesinden gelmek - FileOpen() işlevi tarafından döndürülen dosya tanıtıcısı.
uzunluk - Okunacak karakter sayısı.
Misal:
 int tanıtıcı;
  dize dizisi;
  handle=FileOpen("dosyaadi.csv", FILE_CSV|FILE_READ); // ayırıcısız veya var olmayan ayırıcılı bir dosya açarsanız
  if(işle>0)
    {
     str=FileReadString(tanıtıcı); // sonra bu fonksiyon satırın sonuna kadar okuyacaktır
     FileClose(tutamak);

}


Neden: