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

 
Top2n :
bile tutmadı.

Bayrakları tanıyın.
 
hangi ülkeler) Lütfen ne tür bayraklar olduğunu yazınız. Arama motoruna girmek ve tanışmak için hangi tuşlar.
 
false true'dan bahsediyorsanız, o zaman tam olarak bir siparişin nasıl açılabileceğini anlamıyorum.
 
Söyle bana, danışman bir siparişler tablosu açar. Fiyatı en yüksek ve en düşük olan sırayı belirleyen bir fonksiyon yazdım. Ancak en düşük veya en yüksek fiyatlı ikinci sipariş hakkında daha fazla bilgiye ihtiyacım var. burada genel olarak 2. ve aşırı değil. işlevi söyle.
 
Top2n :
false true'dan bahsediyorsanız, o zaman tam olarak bir siparişin nasıl açılabileceğini anlamıyorum.
Ve neden "bir sinyalde açılması gereken türden bir açık pozisyon var mı?" kontrol etmiyorsunuz...
Zaten varsa, açmayın.

Piyasada bu tür bir pozisyon yoksa, açın.

Peki, bu çekle birlikte diğer bazı koşulları da kontrol edebilirsiniz. Örneğin: böyle bir pozisyon zaten varsa, ancak açılmasından bu yana belirli bir süre geçtiyse, başka bir pozisyon açabilirsiniz... vb. vb. ...

 
DimaMA :
Söyle bana, danışman bir siparişler tablosu açar. Fiyatı en yüksek ve en düşük olan sırayı belirleyen bir fonksiyon yazdım. Ancak en düşük veya en yüksek fiyatlı ikinci sipariş hakkında daha fazla bilgiye ihtiyacım var. burada genel olarak 2. ve aşırı değil. işlevi söyle.

Tüm siparişler arasında dolaşın, onları iki boyutlu bir dizide saklayın. Dizinin ilk boyutuna sipariş verme zamanını ve ikinci boyutuna biletini girin. Diziyi, sıralama tarihine göre (birinci boyuta göre) azalan düzende sıralayın. Dizinin birinci boyuttaki ikinci elemanı , sondan bir önceki siparişin (sondan ikinci) yerleştirildiği tarihi saklayacaktır, ikinci boyutta ise gerekli siparişin bileti olacaktır. Bu bilet için bir sipariş seçin ve onunla ne isterseniz yapın.


Her nasılsa, özel bir danışman için son konumların N'inci sayısı için başabaş noktasını hesaplamak için bir fonksiyon yazdım. Hesaplamanın sondan bir öncekinden başlayarak son birkaç pozisyon için yapılması gerekiyordu. Nasıl organize edildiğini ve oradan bir ipliği yırtıp kendiniz için görebilirsiniz:

 //+----------------------------------------------------------------------------+
// Уровень безубытка по символу для N последних позиций, начиная с предпоследней
double LevelPreWLforNpos( int op, int mn1, int mn2, int num) { 
   double lots= 0 ;
   double sum= 0 ;
   int n= 0 ;
   int mass[ 1 ][ 2 ];
   ArrayInitialize (mass, 0 );
   for ( int i= 0 ; i< OrdersTotal (); i++) {
       if ( OrderSelect (i,SELECT_BY_POS)) {
         if ( OrderSymbol ()!=sy)   continue ;
         if ( OrderType ()!=op)     continue ;
         if ( OrderMagicNumber ()==mn1 || ( OrderMagicNumber ()==mn2 || OrderMagicNumber ()< 0 )) {
            n++;
             if (n> ArrayRange (mass, 0 )) ArrayResize (mass, n);
            mass[n- 1 ][ 0 ]= OrderOpenTime ();
            mass[n- 1 ][ 1 ]= OrderTicket ();
            }
         }
      }
   ArraySort (mass, WHOLE_ARRAY , 0 ,MODE_DESCEND);
   if ( ArrayRange (mass, 0 )>num+ 1 )   ArrayResize (mass,num+ 1 );
   for (i= 1 ; i< ArrayRange (mass, 0 ); i++) {
       if ( OrderSelect (mass[i][ 1 ],SELECT_BY_TICKET)) {
         if ( OrderCloseTime ()== 0 ) {
             if ( OrderType ()==OP_BUY) {
               lots+= OrderLots ();
               sum+= OrderLots ()* OrderOpenPrice ();
               }
             if ( OrderType ()==OP_SELL) {
               lots-= OrderLots ();
               sum-= OrderLots ()* OrderOpenPrice ();
               }
            }
         }
      }   
   double price= 0 ;
   if (lots!= 0 ) price=sum/lots;  
   return ( NormalizeDouble (price,dg));
}
//+----------------------------------------------------------------------------+
 
Top2n :
false true'dan bahsediyorsanız, o zaman tam olarak bir siparişin nasıl açılabileceğini anlamıyorum.


Evet. Onlardan bahsediyorum. Buradaki öğreticiye bakın. Yazarken başka bazı şartlarınız olacak: "Dikkat, soru!) Ve (sig1) için bir kez nasıl açılır, bu sig1-open BAY gibi olabilirken, bir sonraki komut, sig0-diyelim. trol (fark etmez), sonraki komut tekrar, sig1 - ikinci BAY'ı açın." Bu çok kez değil mi? Buna ihtiyacın yok gibi görünüyor ... Genel olarak bayraklarla oynayın.

 
Roman. :


Evet. Onlardan bahsediyorum. Buradaki öğreticiye bakın. Yazarken başka bazı şartlarınız olacak: "Soruya dikkat!) Ve (sig1) için bir kez nasıl açılır, bu sig1-open BAY gibi olabilirken, bir sonraki komut, sig0-haydi diyelim. trol (fark etmez), sonraki komut tekrar, sig1 - ikinci BAY'ı açın." Bu çok kez değil mi? Buna ihtiyacın yok gibi görünüyor ... Genel olarak bayraklarla oynayın.

Ve Kimi'nin rastgele uygun bir işlevi yok mu? Böylece program tıkanmaz. Emri açması ve sakinleşmesi gerekiyor, aksi takdirde bir saniyede "bin" olacak. açılır
 
Top2n :
Ve Kim I.V. rastgele uygun bir fonksiyon yok mu? Böylece program tıkanmaz. Emri açması ve sakinleşmesi gerekiyor, aksi takdirde bir saniyede "bin" olacak. açılır
Seçmek.
 

Testin (işlemlerin) sonuçlarını test ettikten sonra bir dosyaya yazmak istiyorum

deinit () bloğuna tofile () işlevini koydum (iş bitiminden sonraki kayıtlar)

ve işte fonksiyonun kendisi

 // Запись профитов в файл
void toFile( )
{
int handle= FileOpen ( "OrdersReport.csv" , FILE_WRITE | FILE_CSV , "\t" );
   if (handle< 0 ) return ( 0 );
   // запишем заголовок в файл
   FileWrite (handle, "#" , "проф" );
 
   int total= OrdersTotal ();
   // записываем в файл только закрытые ордера
   for ( int pos= 0 ;pos<total- 1 ;pos++)
    {
     //FileSeek(handle, 0, SEEK_END);
     if ( OrderSelect (pos,SELECT_BY_POS, MODE_HISTORY)==false) continue ;
     FileWrite (handle, OrderTicket (), OrderProfit ());
    }
   FileClose (handle);
   return ;
çalışmıyor, sadece başlığı yazıyor
Neden: