Hatalar, hatalar, sorular - sayfa 73

 
Swan :

ya da aramaya gerek yok, ya da iste, isteyerek pozun sembolüne teklif ver

PositionGetSymbol işlevi , daha fazla çalışma için otomatik olarak bir konum seçer.

Aslında PositionGetSymbol sıralı seçim sağlarken PositionSelect doğrudan seçim sağlar

Документация по MQL5: Торговые функции / PositionGetSymbol
Документация по MQL5: Торговые функции / PositionGetSymbol
  • www.mql5.com
Торговые функции / PositionGetSymbol - Документация по MQL5
 
Swan :

veya kaba kuvvet gerekli değildir veya poz sembolü ile teklif isteyin

Orada, bir başlangıç için, görüldüğü gibi, PositionGetInteger (POSITION_TYPE), PositionSelect tarafından seçilmeden kullanılır. Ki bu aslında iyi değil (Slava'nın bana hatırlattığı gibi)... :)

dize :

PositionGetSymbol işlevi , daha fazla çalışma için otomatik olarak bir konum seçer.

Aslında PositionGetSymbol sıralı seçim sağlarken PositionSelect doğrudan seçim sağlar

Buna dayanarak, döngüde tam olarak PositionGetSymbol'ü uygulamak ve ardından diğer her şeyle ilgilenmek gerekiyordu ...
 

peki, telepati kullanıyorsanız, o zaman if(PositionSelect(Symbol())) bir döngü yerine koymanız gerekir :)

LevelProfit-LevelWLoss'un SymbolInfoInteger'den (Symbol,SYMBOL_TRADE_STOPS_LEVEL) daha az olmadığının kontrol edilmesi de tavsiye edilir.

Ve çiftler doğru şekilde karşılaştırmaz.

aksi halde çalışması gerekir)


ps: emin değilim, ancak sl/tp modifikasyonu için sapma>0 iyi bir şey eklemeyecektir.

 

OBJPROP_TIME tanımlayıcılı ObjectGetInteger() işlevi düzgün çalışmıyor

Hatayı yeniden oluşturmak için "1" adlı bir "Dikdörtgen" nesnesi oluşturun.

"1" adlı yeni oluşturulmuş dikdörtgenimizin dört bağlantı koordinatını gösteren aşağıdaki komut dosyasını çalıştırın.

 void OnStart ()
{ 
   Comment ( ObjectGetDouble ( 0 , "1" , OBJPROP_PRICE , 0 ), "   " ,
           StringToTime    ( IntegerToString ( ObjectGetInteger ( 0 , "1" , OBJPROP_TIME , 0 ))), "\n" ,
          
           ObjectGetDouble ( 0 , "1" , OBJPROP_PRICE , 1 ), "   " ,
           StringToTime    ( IntegerToString ( ObjectGetInteger ( 0 , "1" , OBJPROP_TIME , 1 ))));

}

Fiyat koordinatlarının doğru belirlendiğini ancak zaman koordinatlarının şöyle olmadığını görüyoruz:


Документация по MQL5: Графические объекты / ObjectGetInteger
Документация по MQL5: Графические объекты / ObjectGetInteger
  • www.mql5.com
Графические объекты / ObjectGetInteger - Документация по MQL5
 
joo :

OBJPROP_TIME tanımlayıcılı ObjectGetInteger() işlevi düzgün çalışmıyor

Hatayı yeniden oluşturmak için "1" adında bir "Dikdörtgen" nesnesi oluşturun.

"1" adlı yeni oluşturulmuş dikdörtgenimizin dört bağlantı koordinatını gösteren aşağıdaki komut dosyasını çalıştırın.

Fiyat koordinatlarının doğru belirlendiğini ancak zaman koordinatlarının şöyle olmadığını görüyoruz:



farkı Hisset

   Comment ( ObjectGetDouble ( 0 , "1" , OBJPROP_PRICE , 0 ), "   " ,
           datetime ( ObjectGetInteger ( 0 , "1" , OBJPROP_TIME , 0 )), "\n" ,
          
           ObjectGetDouble ( 0 , "1" , OBJPROP_PRICE , 1 ), "   " ,
           datetime ( ObjectGetInteger ( 0 , "1" , OBJPROP_TIME , 1 )));
 
joo :

OBJPROP_TIME tanımlayıcılı ObjectGetInteger() işlevi düzgün çalışmıyor

Hatayı yeniden oluşturmak için "1" adlı bir "Dikdörtgen" nesnesi oluşturun.

"1" adlı yeni oluşturulmuş dikdörtgenimizin dört bağlantı koordinatını gösteren aşağıdaki komut dosyasını çalıştırın.

Fiyat koordinatlarının doğru belirlendiğini ancak zaman koordinatlarının şöyle olmadığını görüyoruz:



İşte senaryo.

 //+------------------------------------------------------------------+
//|                                                       123123.mq5 |
//|                                  2009, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   string msg= "" ;
//---
   msg+= DoubleToString ( ObjectGetDouble ( ChartID (), "123456" , OBJPROP_PRICE , 0 ), _Digits )+ " " +
        TimeToString ( ObjectGetInteger ( ChartID (), "123456" , OBJPROP_TIME , 0 ),TIME_DATE|TIME_MINUTES)+ "\n" ;
   msg+= DoubleToString ( ObjectGetDouble ( ChartID (), "123456" , OBJPROP_PRICE , 1 ), _Digits )+ " " +
        TimeToString ( ObjectGetInteger ( ChartID (), "123456" , OBJPROP_TIME , 1 ),TIME_DATE|TIME_MINUTES)+ "\n" ;
   Comment (msg);
  }
//+------------------------------------------------------------------+

Ve işte sonuç.

 
stringo :

farkı Hisset

Teşekkürler, farkı hissettim.

Değer türünü açıkça tarih saat olarak ayarladınız

ve veri dönüşümünü kullandım.

Ama bu, tasarımın

 StringToTime    ( IntegerToString (

yanlış mı çalışıyor?

 
joo :

Teşekkürler, farkı hissettim.

Değer türünü açıkça tarih saat olarak ayarladınız

ve veri dönüştürmeyi kullandım.

Ama bu, tasarımın

yanlış mı çalışıyor?

Yanlış olduğundan değil. Bu adımlar sadece gereksizdir.

StringToTime() işlevinin yardımına bakın ve sonucun neden yanlış olduğunu anlayacaksınız.

Документация по MQL5: Преобразование данных / StringToTime
Документация по MQL5: Преобразование данных / StringToTime
  • www.mql5.com
Преобразование данных / StringToTime - Документация по MQL5
 
joo :

Teşekkürler, farkı hissettim.

Değer türünü açıkça tarih saat olarak ayarladınız

ve veri dönüştürmeyi kullandım.

Ama bu, tasarımın

yanlış mı çalışıyor?

Tam olarak değil. IntegerToString'i dönüştürerek "12345612345" gibi bir dize elde edersiniz, StringToTime için giriş "2010.07.29 08:10" tarihi olarak biçimlendirilmiş bir dize olmalıdır.

Ancak bize hatamızı gösterdin. Senin durumunda, 1970.01.01 00:00 tarihini döndürmek ve last_error'ı yükseltmek zorunda kaldık.

 
stringo :

Tam olarak değil. IntegerToString'i dönüştürerek "12345612345" gibi bir dize elde edersiniz, StringToTime için giriş "2010.07.29 08:10" tarihi olarak biçimlendirilmiş bir dize olmalıdır.

Ancak bize hatamızı gösterdin. Senin durumunda, 1970.01.01 00:00 tarihini döndürmek ve last_error'ı yükseltmek zorunda kaldık.

Yani, mesajım zaten düşündüğüm gibi boşuna değil mi?