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

 
Vitaly Muzichenko :

Böyle bir tasarımda yanlış olan nedir?

Yoksa tarih saatini yayınlamak daha mı iyi? uzun yazmak için?

şimdiye kadar herhangi bir sorun görmüyorum.
Ancak doğruluğu artırma eğilimi açıktır (hafifçe söylemek gerekirse datetime, time_t'den büyüktür)
ve bunun yerine, süreleri karşılaştırmak için bu kadar uzun süre verilmelidir. Derleyici bir şeyi optimize ederse, onu atar ve gelecek için depozito kalır :-)
 
Maxim Kuznetsov :
şimdiye kadar herhangi bir sorun görmüyorum.
Ancak doğruluğu artırma eğilimi açıktır (hafifçe söylemek gerekirse datetime, time_t'den büyüktür)
ve bunun yerine, süreleri karşılaştırmak için bu kadar uzun süre verilmelidir. Derleyici bir şeyi optimize ederse, onu atar ve gelecek için depozito kalır :-)

Sonuç olmadan değişmeden kullanmanın mümkün olduğu anlamına mı geliyor?

 
Vitaly Muzichenko :

Sonuç olmadan değişmeden kullanmanın mümkün olduğu anlamına mı geliyor?

Peki, sonuçları olmadan nasıl :-)

uzun x için = TimeCurrent() ; Zaten iyi bir şirkette "yüze çarpıyor" :-) Sadece fizikteki tipler farklı değil, aynı zamanda farklı boyutlardalar ve daha büyük bir boyutu daha küçük bir boyuta getiriyorsunuz.

aksi takdirde, evet, (datetime)TimeCurrent tarihinden itibaren tüm saniyeler uzun süreye yerleştirilmiş gibi görünüyor

 
Maxim Kuznetsov :

harika bir işlev var StringFind() - "#" veya hemen "#" dizesinin oluşumunu arayın

Bulundu
 StringFind ( OrderComment (), "to #" , 0 )


ve onunla ne yapmalı?

StringSubstr 'da her şey açıktır, hemen sayıları aldık - bir bilet, ancak burada StringFind'de , yorumda "to #" olduğunu zaten biliyoruz

 
PolarSeaman :
Bulundu


ve onunla ne yapmalı?

StringSubstr 'da her şey açıktır, hemen sayıları aldık - bir bilet, ancak burada StringFind'de , yorumda "to #" olduğunu zaten biliyoruz

ama nerede olduğunu bilmiyoruz :-) StringFind - istenen "#" nin tam olarak bu konumdan olduğunu söyleyecektir. ya da hiç değil. Asla ağdan gelene güvenmeyin ve kişisel olarak / kişisel olarak kontrol etmiyorsunuz :-) Burada para oynuyoruz - burada her şey ciddi

 
Maxim Kuznetsov :

ama nerede olduğunu bilmiyoruz :-) StringFind - istenen "#" nin tam olarak bu konumdan olduğunu söyleyecektir. ya da hiç değil. Asla ağdan gelene güvenmeyin ve kişisel olarak / kişisel olarak kontrol etmiyorsunuz :-) Burada para oynuyoruz - burada her şey ciddi

yorumdan bileti seçip "#'a" atmanız gerekiyor.

açık pozisyonun biletini kapalı pozisyonun yorumunda bulunan biletle karşılaştırmanız gerekir.

neden "#" için arıyoruz?

 

StringSubstr işlevi, yorumun istenen bölümünü döndürür. Bu fonksiyon neden kapalı bir pozisyonun değil de açık pozisyonun karını döndürüyor? MODE_HISTORY içinde sıralıyorum

 double prof_cl_pos( string sy= "0" , int op=- 1 , int mn=- 1 ) {
   datetime ta;
   int       i, k= OrdersHistoryTotal ();
   double profit_= 0 ;
   string comment= "" ;
   string substr= "" ;

   if (sy== "" || sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )) {
       if ( OrderSymbol ()==sy) {
         if ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) {
           if (op< 0 || OrderType ()==op) {
             if (mn< 0 || OrderMagicNumber ()==mn) {
              comment= OrderComment ();
               substr = StringSubstr (comment, 4 , 9 );
               if (ticket_op_pos( Symbol (), - 1 ,mn)==substr)
              profit_= OrderProfit ();
            }
          }
        }
      }
    }
  }
   return (profit_);
}
 
Vitaly Muzichenko :

Böyle bir tasarımda yanlış olan nedir?

Yoksa tarih saatini yayınlamak daha mı iyi? uzun yazmak için?

datetime ulong - onu eklemeniz gereken yer burasıdır.
 
PolarSeaman :

yorumdan bileti seçip "#'a" atmanız gerekiyor.

açık pozisyonun biletini kapalı pozisyonun yorumunda bulunan biletle karşılaştırmanız gerekir.

neden "#" için arıyoruz?

Yorumda "to# veya dan# var mı" anlamak için arıyoruz. Değilse, bu emir kapalı pozisyonun bir parçası değildir ve buna ihtiyacımız yoktur.

StringFind(OrderComment(),"#to") sıfırdan büyük veya sıfıra eşitse, yorum gerekli alt diziyi içerir ve ancak şimdi bu satırdaki bilet numarasının konumunu hesaplamak mümkündür.

 
PolarSeaman :

StringSubstr işlevi, yorumun istenen bölümünü döndürür. Bu fonksiyon neden kapalı bir pozisyonun değil de açık pozisyonun karını döndürüyor? MODE_HISTORY içinde sıralıyorum

Ve bu sorunun cevabı bu.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu

2018.04.07 00:25

Bulundu
 StringFind ( OrderComment (), "to #" , 0 )


ve onunla ne yapmalı?

StringSubstr 'da her şey açıktır, hemen sayıları aldık - bir bilet, ancak burada StringFind'de , yorumda "to #" olduğunu zaten biliyoruz


Ama yapmazsanız, beklediğiniz şeyi elde edemezsiniz.