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

 
nuan :
Soru, örneğin her 30 dakikada bir tüm siparişlerin programlı olarak nasıl kapatılacağıdır?

 datetime prevtime;
int Magic= 11111 ;
int slippage= 5 ;

//=====================
 int start(){
 
     datetime TimeM30= iTime ( NULL , 30 , 0 );
     if (TimeM30==prevtime) return ( 0 ); 
    prevtime = TimeM30;   
    CloseAllPos();
   return ( 0 );
 }
//=====================
 void CloseAllPos(){
   double maxlot= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--){
     if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue ;
     if ( OrderSymbol ()!= Symbol ()) continue ;
     if ( OrderMagicNumber ()!=Magic) continue ; 
       if (maxlot< OrderLots ()){ 
         maxlot= OrderLots ();
         if ( OrderType ()==OP_BUY) OrderClose ( OrderTicket (),maxlot, NormalizeDouble (Bid, Digits ),slippage, Yellow );
         if ( OrderType ()==OP_SELL) OrderClose ( OrderTicket (),maxlot, NormalizeDouble (Ask, Digits ),slippage, Yellow );
  } } }
 
teşekkürler
 
Kapanış fiyatlarını açılış fiyatlarıyla değiştirdim - sonuç bir öncekiyle aynı, şu anda özkaynak çizgisinin kesinlikle denge çizgisinin üzerinde olması dışında. İşlem sayısı ve kâr biraz azaldı, ancak durum daha da istikrar kazandı. Analiz edilen segmentte kaybedilen işlem yoktur.
 
Vinin :


Doğru anlarsam, piyasada siparişlerin varlığı için koşulları kontrol ederek mi? -

...
if ( OrderType ()< 2 ) 
//здесь  корректировка размера позиций с учетом ввода/вывода


İlginç bir şey! Tam kodu gönderebilir misiniz? Emirlerin yatırılan / çekilen fonlara nasıl bağlı olduğu tam olarak açık değildir. İlk başta hesaba ne kadar para yatırıldığını, diyelim ki başlangıç bakiyesini, kapatılan pozisyonların geçmişini yeniden hesaplamadan belirlemek mümkün müdür? Tüm brokerler tüm ticaret geçmişini sağlamaz, bazıları 1 aydan daha eski değildir, bu nedenle danışmanın karlılığının yeniden hesaplanması yanlıştır: ticaret başlangıç tarihi doğru bir şekilde belirlenmiştir ve bakiye bir ay öncekidir. Sonuç olarak, aylık kar, tüm işlem dönemi için uzatılır.

 
nuan :
Soru, örneğin her 30 dakikada bir tüm siparişlerin programlı olarak nasıl kapatılacağıdır?

 datetime prevtime;
int Magic= 11111 ;
int slippage= 5 ;

//=====================
 int start(){
 
     datetime TimeM30= iTime ( NULL , 30 , 0 );
     if (TimeM30==prevtime) return ( 0 ); 
    prevtime = TimeM30;   
    CloseAllPos();
   return ( 0 );
 }
//=====================
 void CloseAllPos(){
   double maxlot= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--){
     if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue ;
     if ( OrderSymbol ()!= Symbol ()) continue ;
     if ( OrderMagicNumber ()!=Magic) continue ; 
       if (maxlot< OrderLots ()){ 
         maxlot= OrderLots ();
         if ( OrderType ()==OP_BUY) OrderClose ( OrderTicket (),maxlot, NormalizeDouble (Bid, Digits ),slippage, Yellow );
         if ( OrderType ()==OP_SELL) OrderClose ( OrderTicket (),maxlot, NormalizeDouble (Ask, Digits ),slippage, Yellow );
  } } }


чет он не работает , закрывает в секунду
 
forexnew :


Doğru anlarsam, piyasada siparişlerin varlığı için koşulları kontrol ederek mi? -


İlginç bir şey! Tam kodu gönderebilir misiniz? Emirlerin yatırılan / çekilen fonlara nasıl bağlı olduğu tam olarak belli değil. İlk başta hesaba ne kadar para yatırıldığını, diyelim ki başlangıç bakiyesini, kapatılan pozisyonların geçmişini yeniden hesaplamadan belirlemek mümkün müdür? Tüm brokerler tüm ticaret geçmişini sağlamaz, bazıları 1 aydan daha eski değildir, bu nedenle danışmanın karlılığının yeniden hesaplanması yanlıştır: ticaret başlangıç tarihi doğru bir şekilde belirlenmiştir ve bakiye bir ay öncekidir. Sonuç olarak, aylık kar, tüm işlem dönemi için uzatılır.


Muhtemelen sonuçta böyle değil.
Terminalde "Hesap Geçmişi" sekmesini açın, sağ tıklayın, "Tüm Geçmiş" i seçin.
Geçmiş, hesabın açıldığı andan itibaren indirilecektir.
 
forexnew :


Doğru anlarsam, piyasada siparişlerin varlığı için koşulları kontrol ederek mi? -


İlginç bir şey! Tam kodu gönderebilir misiniz? Emirlerin yatırılan / çekilen fonlara nasıl bağlı olduğu tam olarak açık değildir. İlk başta hesaba ne kadar para yatırıldığını, diyelim ki başlangıç bakiyesini, kapatılan pozisyonların geçmişini yeniden hesaplamadan belirlemek mümkün müdür? Tüm brokerler tüm ticaret geçmişini sağlamaz, bazıları 1 aydan daha eski değildir, bu nedenle danışmanın karlılığının yeniden hesaplanması yanlıştır: ticaret başlangıç tarihi doğru bir şekilde belirlenmiştir ve bakiye bir ay öncekidir. Sonuç olarak, aylık kar, tüm işlem dönemi için uzatılır.

Burada bundan bahsetmiyoruz, ancak belirli bir zamana kadar hesaba / hesaba para yatırma / çekme olup olmadığını programlı olarak nasıl takip edeceğimiz hakkında konuşuyoruz. Henüz bir kod yok, burada pozisyon hacmi ayarlarını hesaplamak için temel bir formül var . (Sayı (toplam para miktarına göre) yükleme / çekme sayısı buna bağlıdır)
 
nuan :


"Bir saniyede kapanıyor" ne anlama geliyor?
Uzun zamandır? Ya da ne?

 

charter , siparişi 30 dakika sonra değil, aynı saniyede kapattığı anlamına gelir.


Örnekte olduğu gibi kodda ayarladım


 datetime TimeM30= iTime ( NULL , 30 , 0 );
     if (TimeM30==prevtime) return ( 0 ); 
    prevtime = TimeM30;   
    CloseAllPosTime();
Diğer nedenlerden dolayı robot hiçbir şekilde kapanmaz, yani. durarak değil, kâr ederek değil.


1 2011.07.29 00:00 1 satın al 0.01 1.4328 1.3328 1.5328 0.00 1000.00
2 2011.07.29 00:01 kapat 1 0.01 1.4327 1.3328 1.5328 -0.10 999.90
3 2011.07.29 00:01 2 satın al 0.01 1.4329 1.3329 1.5329 0.00 999.90
4 2011.07.29 00:01 kapat 2 0.01 1.4326 1.3329 1.5329 -0.30 999.60
5 2011.07.29 00:01 3 satın al 0.01 1.4328 1.3328 1.5328 0.00 999.60
6 2011.07.29 00:03 kapat 3 0.01 1.4327 1.3328 1.5328 -0.10 999.50
7 2011.07.29 00:03 4 satın al 0.01 1.4329 1.3329 1.5329 0.00 999.50
8 2011.07.29 00:03 kapat 4 0.01 1.4329 1.3329 1.5329 0.00 999.50


 
Roman. :
Burada bundan bahsetmiyoruz, ancak belirli bir zamana kadar hesaba / hesaba para yatırma / çekme olup olmadığını programlı olarak nasıl takip edeceğimiz hakkında konuşuyoruz. Henüz bir kod yok, burada pozisyon hacmi ayarlarını hesaplamak için temel bir formül var . (Sayı (toplam para miktarına göre) yükleme / çekme sayısı buna bağlıdır)

Anladım.

Ve başlangıç olarak 0$'lık bir hesap açmayı ve bakiyenin 1. ikmalini tamamlama olarak düşünürsek. Hesaba yapılan tüm yedekleri (birincisi dahil) programlı olarak belirlemek mümkün müdür?