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

 
solnce600 :

beyler iyi akşamlar

Lütfen derleyicinin neden aşağıdaki kodda bunu düşündüğünü söyleyin

değişken int Bilet tanımlı değil.

Tek hata veriyor

'Ticket' - değişken tanımlanmadı C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (18, 6)

Ticket değişkeni aşağıdaki koddaki atama ifadesinde de tanımlanmış olmasına ve kod başarıyla derlenmesine rağmen

int Ticket değişkeni yereldir ve bir sonraki tıklamada sıfıra ayarlanır.
 
Vinin :


Muhtemelen tek bir yerde sadece parantezler yeterli değildir

Sorun çözüldü.Çok teşekkür ederim.
 
TarasBY :
int Ticket değişkeni yereldir ve bir sonraki onayda sıfıra ayarlanır.
Not dikkate alınmıştır.Çok teşekkür ederim.
 

Böyle bir sorunla karşı karşıya kaldı.

3000 teklif fiyat değerleri için tek boyutlu bir çift tip dizi başlatmanız gerekiyor.Tüm değerler farklı ve sıra dışı.

Virgülle ayrılmış her bir değeri manuel olarak puanlamak gerçekçi değildir.

Excel üzerinden denedim fakat kayan nokta yerine nokta koyarsanız excel rakamları okumuyor aralarına virgül koyuyor.

Lütfen bana en iyi seçeneği söyle.


 

3 değişken döndüren ve bunları start() öğesine ileten basit bir Uzman Danışman yazdım.

Ardından, her tikte bu veriler (nesne tipi, fiyat1 ve fiyat2) döndürülmelidir.

 //+-------------------------------------------------------------------------------------+
//|                                                TradingByLine.mq4                    |
//|                                                              hoz                    |
//|                                                                                     |
//+-------------------------------------------------------------------------------------+
#property copyright "hoz"
#property link       ""

string objName;
int isObj,
    objType;
double price1,
       price2;

//+-------------------------------------------------------------------------------------+
//| Функция иницилизации                                                                |
//+-------------------------------------------------------------------------------------+
int init()
{

   

   return ( 0 );
}
//+-------------------------------------------------------------------------------------+
//| Функция деиницилизации                                                              |
//+-------------------------------------------------------------------------------------+
int deinit()
{
//----
   
//----
   return ( 0 );
}
//+-------------------------------------------------------------------------------------+
//| Блок поиска своих объектов                                                          |
//+-------------------------------------------------------------------------------------+
bool IsObjectFound( double & price1, double & price2, int & objType)
{
   for ( int obj= 0 ; obj<= ObjectsTotal ()- 1 ; obj++)
   {
      objName = ObjectName (obj);
      isObj = ObjectFind (objName);
      price1 = ObjectGet( "objName" , OBJPROP_PRICE1);
      price2 = ObjectGet( "objName" , OBJPROP_PRICE2);
      objType = ObjectType( "objName" );

       if (isObj != - 1 )
         return ( true );
   }
   return ( false );
}
//+-------------------------------------------------------------------------------------+
//| Функция start                                                                       |
//+-------------------------------------------------------------------------------------+
int start()
{
   if (!IsObjectFound(price1, price2, objType))
       return ( 0 );
   Print ( "objType = " , objType);
   Print ( "price1 = " , price1, ", price2 = " , price2);

   return ( 0 );
}

Daha sonra bu Expert Advisor'ı test cihazında görselleştirme modunda çalıştırıyorum ve elimle çizelgeye bir çizgi çiziyorum. IsObjectFound() işlevinde aldığım işleme fiyatları ve nesne türü doğru dönmüyor. İşte günlük çıktısı:

 2013.03 . 16 20 : 12 : 46      2013.01 . 24 00 : 02   TradingByLine EURJPY,M1: objType = - 1
2013.03 . 16 20 : 12 : 46      2013.01 . 24 00 : 02   TradingByLine EURJPY,M1: price1 = 0 , price2 = 0
2013.03 . 16 20 : 12 : 46      2013.01 . 24 00 : 02   TradingByLine EURJPY,M1: objType = - 1
2013.03 . 16 20 : 12 : 45      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: price1 = 0 , price2 = 0
2013.03 . 16 20 : 12 : 45      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: objType = - 1
2013.03 . 16 20 : 12 : 45      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: price1 = 0 , price2 = 0
2013.03 . 16 20 : 12 : 45      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: objType = - 1
2013.03 . 16 20 : 12 : 44      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: price1 = 0 , price2 = 0

Çizgi elle çizilir, yani bir türe ve diğer parametrelere sahiptir:

Astar

Neden gerekli parametreler döndürülmüyor?

 
solnce600 :

Böyle bir sorunla karşı karşıya kaldı.

3000 teklif fiyat değerleri için tek boyutlu bir çift tip dizi başlatmanız gerekiyor.Tüm değerler farklı ve sıra dışı.

Virgülle ayrılmış her bir değeri manuel olarak puanlamak gerçekçi değildir.

Excel üzerinden denedim fakat kayan nokta yerine nokta koyarsanız excel rakamları okumuyor aralarına virgül koyuyor.

Lütfen bana en iyi seçeneği söyle.


Excel okuyabilir, nasıl yaptığınızı daha ayrıntılı olarak gösterebilir
 
hoz :

3 değişken döndüren ve bunları start() öğesine ileten basit bir Uzman Danışman yazdım.

Ardından, her tikte bu veriler (nesne tipi, fiyat1 ve fiyat2) döndürülmelidir.

Daha sonra bu Expert Advisor'ı test cihazında görselleştirme modunda çalıştırıyorum ve elimle çizelgeye bir çizgi çiziyorum. IsObjectFound() işlevinde aldığım işleme fiyatları ve nesne türü doğru dönmüyor. İşte günlük çıktısı:

Çizgi elle çizilir, yani bir türe ve diğer parametrelere sahiptir:

Neden gerekli parametreler döndürülmüyor?

Gerekli

price1 = ObjectGet( "objName" , OBJPROP_PRICE1);
      price2 = ObjectGet( "objName" , OBJPROP_PRICE2);
      objType = ObjectType( "objName" );

tırnak işaretleri olmadan objName. Bu, nesnenin (dize) adını içeren değişkenin (program metnindeki tanımlayıcı) adıdır.

 
alsu :

Gerekli

tırnak işaretleri olmadan objName. Bu, nesnenin (dize) adını içeren değişkenin (program metnindeki tanımlayıcı) adıdır.



Bu arada, belgeler aksini düşünüyor. İşte burada kafam karıştı.

belgelerde söve

 
alsu :

Excel okuyabilir, nasıl yaptığınızı daha ayrıntılı olarak gösterebilir

İlk haneden sonra virgül olan satırda (yani fiyat) 100 değer vardır.

bir çizgi seçiyorum

Ana Sayfa - bul ve değiştir

Tüm virgülleri noktalara çeviriyorum - başarıyla.

Şimdi değerler arasına virgül koymanız gerekiyor

Hücre biçimini seçin

Tüm biçimler

Satırımın sayı biçimini gösteren etkin alanda - sonuna virgül koydum

Excel, girdiğim biçimi işleyemediğini söylüyor.

 
hoz :


Bu arada, belgeler aksini düşünüyor. İşte burada kafam karıştı.

Tırnak içinde, değişkenin kendisi değil, dize değişkeninin DEĞERİ vardır!!!