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

 
Artyom Trishkin :

Yapabilir. Ama dikkat et. Açık bir pozisyon için kapanış fiyatını döndürür. Buna göre: Al - Teklif Ver, Sat - Sor

hakkında. Böyle kullanılabileceğini bilmiyordum.

OrderClosePrice() öğesinin yalnızca kapalı bir anlaşmadan alınabileceğini düşündüm.

Kılavuzda bununla ilgili hiçbir şey yok)
 
igrok333 :
hakkında. Böyle kullanılabileceğini bilmiyordum.

OrderClosePrice() öğesinin yalnızca kapalı bir anlaşmadan alınabileceğini düşündüm.

Kılavuzda bununla ilgili hiçbir şey yok)

Belgelenmemiş özellik. Ama bazı şartlar var. Şimdi hangileri olduğunu hatırlamıyorum. Alexey @Alexey Viktorov'a sormalısın - yakın zamanda onlar hakkında yazdı.

 
Artyom Trishkin :

Belgelenmemiş özellik. Ama bazı şartlar var. Şimdi hangileri olduğunu hatırlamıyorum. Alexey @Alexey Viktorov'a sormalısın - yakın zamanda onlar hakkında yazdı.

bu kod ne olacak?

değişken hemen sıfırla başlatılmadı mı?

 void zakritj_vse_sdelki()
 {
 bool pr;
 for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)       
   {                                        
   if ( OrderSelect (i, SELECT_BY_POS )== true )
      {   
         if ( OrderType ()== OP_BUY )    pr= OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), 30 );                              
         if ( OrderType ()== OP_SELL )   pr= OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), 30 );
         
         if (pr== false ) Print ( "закрытие ордера " , OrderSymbol () , " завершилось с ошибкой #" , GetLastError ());
         if (pr== true ) Print ( "ордер " , OrderSymbol () , " ЗАКРЫТ" );
       }
    }
  } 
 
igrok333 :
peki bu kod?

değişken hemen sıfırla başlatılmadı mı?

Sessizliğe güvenemezsin. Yerel bir değişken bildirirken hemen değerine dikkat etmek daha iyidir: bool pr=false;

Genel olarak, elbette, orada sormak gereksizdir. Fonksiyonun ne döndürdüğünü kontrol etmek yeterlidir:

if(!OrderClose()) Print("Kötü");

 

Önceki mumdaki Fibonacci fanının fiyatı nasıl bulunur? MQL5
ObjectGetValueByTime() çalışmıyor, 0, sonra yüksek, sonra düşük mumlar döndürüyor

 

@Artyom Trishkin

Tünaydın. Lütfen yardım et. göstergemde neyin yanlış olduğunu söyle. Neden hiç çekmiyor anlamıyorum.

https://www.mql5.com/ru/forum/224805#comment_6372281

Dosyalar:
indicator.ZIP  21 kb
probability.zip  50 kb
 
Artyom Trishkin :

Belgelenmemiş özellik. Ama bazı şartlar var. Şimdi hangileri olduğunu hatırlamıyorum. Alexey @Alexey Viktorov'a sormalısın - yakın zamanda onlar hakkında yazdı.

Çok uzun zaman önceydi... ama yine de onu bulmayı başardım. Renat, bunun neden istenmediğini açıkça açıklıyor. Ama yine de bana göre çok da önemli değil. Sorun, siparişi kapatmak için bir yeniden teklif alındığında ortaya çıkabilir. Talepte Satış veya Teklif fiyatını ayarlarsanız, fiyatları her zaman güncelleyebilir ve tekrar deneyebilirsiniz. Ve OrderClosePrice() kapanış fiyatını belirtirseniz, emirdeki verileri güncellemek için emri tekrar seçmeniz gerekecektir.

Sonuç: İmkansızsa, ancak çok gerekliyse, mümkündür.

Применение функция OrderClosePrice() к открытым ордерам
Применение функция OrderClosePrice() к открытым ордерам
  • 2006.09.11
  • www.mql5.com
Вопрос к разработчикам: Корректно ли использование данной конструкции: OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,CLR_NONE) Проверка...
 

Lütfen bana söyle! Fiyatı "." ile sınırlandırılmış bir sütun da dahil olmak üzere bir CSV dosyasındaki verileri okuyorum. (1.22426) FileReadString (tanıtıcı) aracılığıyla, ardından StrToDouble işlevi aracılığıyla her şey yolunda. Ancak fiyatı olan bir sütun da var, ancak "," (1.22426) ayırıcısı var ve StrToDouble artık onu okumuyor. CSV'nin kendisinde virgülü bir noktaya dönüştürmenin bir yolu yoksa ne olur?

 
WinProject :

Lütfen bana söyle! Fiyatı "." ile sınırlandırılmış bir sütun da dahil olmak üzere bir CSV dosyasındaki verileri okuyorum. (1.22426) FileReadString(handle) aracılığıyla, ardından StrToDouble işlevi aracılığıyla her şey yolunda. Ama aynı zamanda fiyatı olan bir sütun da var, zaten bir ayırıcı "," (1.22426) var ve StrToDouble artık onu okumuyor. CSV'nin kendisinde virgülü bir noktaya dönüştürmenin bir yolu yoksa ne olur?


DosyaOkuDizesi


ve sonra virgülden noktaya değiştirebilirsiniz:


StringDeğiştir

Bir dizede bulunan tüm alt dizeleri verilen karakter dizisiyle değiştirir.

int StringReplace (
    sicim&           str , // değiştirilecek dize
    const dize      bul , // aranan alt dize
    const dize      değiştirme         // bulunan yerlere eklenecek alt dize
);

 
Vladislav Andruschenko :

DosyaOkuDizesi


ve sonra virgülden noktaya değiştirebilirsiniz:


StringDeğiştir

Bir dizede bulunan tüm alt dizeleri verilen karakter dizisiyle değiştirir.

int StringReplace (
    sicim&           str , // değiştirilecek dize
    const dize      bul , // aranan alt dize
    const dize      değiştirme         // bulunan yerlere eklenecek alt dize
);


Teşekkür ederiz! ), değişken Cena=FileReadString(handle); Separator=StringReplace(Сena,",","."); işlevine ekliyorum. "sayıdan dizgeye örtük dönüştürme" hatası yazıyor -

sınırlayıcı "," (1.22426) ile değeri dize olarak okumak istemiyor ve StringReplace başarısız oluyor. Yoksa yanlış mı yapıyorum?