Çaydanlıktan gelen sorular - sayfa 205

 
Renat :

MetaEditor'da dili değiştirdikten sonra yeniden yüklediniz mi?

Kontrol edeceğiz.

Her şey yolunda gidiyor, mql5_russian.chm yüklendi, Rusça'yı MetaEditor-e'ye koydu, yeniden başlattı, Rusça'da yardım belirdi.
 

Pozisyonu kontrol etmek için aşağıdaki kodu yazdım:

CPositionInfo myposition;

if (myposition.Select( _Symbol ))
{
   double Open_position= NormalizeDouble (myposition.PriceOpen(), _Digits );
   double SL_position  = NormalizeDouble (myposition.StopLoss(), _Digits );
   double TP_position  = NormalizeDouble (myposition.TakeProfit(), _Digits );
   Comment ( " Open_position=" ,Open_position, "\n" ,
           " SL_position=" ,SL_position, "\n" ,
           " TP_position=" ,TP_position);
}

Ama nedense yorumda değerler 4 ondalık basamakla görünüyor. _Digits yerine 5 yine de 4 karakter koydum, 3 - 3 karakter koydum.

 
paladin800 : nedense yorumda değerler 4 ondalık basamakla görünüyor. _Digits yerine 5 yine de 4 karakter koyun, 3 - 3 karakter koyun.
Ve sadece myposition.PriceOpen() çıktısını alırsanız, çıktısı ne olur?
 
paladin800 :

Pozisyonu kontrol etmek için aşağıdaki kodu yazdım:

Ama nedense yorumda değerler 4 ondalık basamakla görünüyor. _Digits yerine 5 yine de 4 karakter koydum, 3 - 3 karakter koydum.

Görünüşe göre DoubleToString () işlevine ihtiyacınız var.

 
paladin800 :

Pozisyonu kontrol etmek için aşağıdaki kodu yazdım:

Ama nedense yorumda değerler 4 ondalık basamakla görünüyor. _Digits yerine 5 yine de 4 basamak koyun, 3 - 3 basamak koyun


Yorumlardaki kesirli sayıların çıktı biçimi aşağıdaki gibidir. Cast, dize türlerine iki katına çıkar ve bunları yorumlar yoluyla verir.
 
Bir hesabın açılış bakiyesini nasıl belirleyebilirsiniz? Hesaptaki toplam kâra bağlı olarak lot büyüklüğünü ayarlamak istiyorum. Peki bu başlangıç bakiyesini belirlemek nasıl daha doğru olur?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 
tor4en : Başlangıç hesap bakiyesini nasıl belirleyebilirim? Hesaptaki toplam kâra bağlı olarak lot büyüklüğünü ayarlamak istiyorum. Peki bu başlangıç bakiyesini belirlemek nasıl daha doğru olur?

Mevduatın yenilenmesine bir kayıt eşlik eder

DEAL_ENTRY_STATE

Bir durum kaydının işareti

Bu yönde ve daha ileriye bakın.

 

myposition.Type() hakkında kafam karıştı. Test etmek için şöyle bir şey yaptım:

CPositionInfo myposition;
// ---
string classtype= "no position" ;
string functype= "no position" ;

if ( PositionSelect ( _Symbol ))
{   // --- section SELL
   if (myposition.Type()== POSITION_TYPE_SELL )
       classtype= "SELL" ;
   if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_SELL )
       functype= "SELL" ;
   // --- section BUY
   if (myposition.Type()== POSITION_TYPE_BUY )
       classtype= "BUY" ;
   if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY )
       functype= "BUY" ;
}
Comment ( "classtype=" ,classtype, ", functype=" ,functype);

Görselleştirme ile test ederken sonuç:
1) pozisyon yok: classtype=konum yok, functype=konum yok // olması gerektiği gibi
2) satış pozisyonu var: classtype= BUY , functype=SELL // classtype hatalı pozisyonun yönünü belirledi
3) bir satın alma pozisyonu var: classtype=BUY, functype=BUY // olması gerektiği gibi

if (PositionSelect(_Symbol)) yerine if (myposition.Select(_Symbol)) aynı sonucu koymayı denedim. Satış yönünü doğru bir şekilde belirlemek için myposition.Type()'ın başka bir şekilde yazılması gerekiyor olabilir mi?

 
paladin800 :

myposition.Type() hakkında kafam karıştı. Test etmek için şöyle bir şey yaptım:

Görselleştirme ile test ederken sonuç:
1) pozisyon yok: classtype=konum yok, functype=konum yok // olması gerektiği gibi
2) satış pozisyonu var: classtype= BUY , functype=SELL // classtype hatalı pozisyonun yönünü belirledi
3) bir satın alma pozisyonu var: classtype=BUY, functype=BUY // olması gerektiği gibi

if (PositionSelect(_Symbol)) yerine if (myposition.Select(_Symbol)) aynı sonucu koymayı denedim. Satış yönünü doğru bir şekilde belirlemek için myposition.Type()'ın başka bir şekilde yazılması gerekiyor olabilir mi?

"X-ray" CPositionInfo sınıfına daha yakından bakarsanız, Type() yönteminin konum türünü döndürmediğini fark edeceksiniz (PozisyonType() yönteminden farklı olarak).

   CPositionInfo myposition;
// ---
   string classtype= "no position" ;
   string functype= "no position" ;

   if ( PositionSelect ( _Symbol ))
     {   // --- section SELL
       if (myposition.PositionType()== POSITION_TYPE_SELL )
         classtype= "SELL" ;
       if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_SELL )
         functype= "SELL" ;
       // --- section BUY
       if (myposition.PositionType()== POSITION_TYPE_BUY )
         classtype= "BUY" ;
       if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY )
         functype= "BUY" ;
     }
   Print ( "classtype=" ,classtype, ", functype=" ,functype);
  }
 
uncleVic :

"X-ray" CPositionInfo sınıfına daha yakından bakarsanız, Type() yönteminin konum türünü döndürmediğini fark edeceksiniz (PozisyonType() yönteminden farklı olarak).

Çok teşekkürler. Senin ipucunla çalıştı! Bir Uzman Danışman yazarken Standart Kitaplığın ticaret sınıflarının nasıl kullanılacağı makalesi tarafından yönlendirildi ve orada "1.6 CPositionInfo Sınıfı" bölümünde düzeltilmesi gerekebilecek myposition.Type() var.