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

 

Exe ilişkilendirmelerini geri yüklemek yardımcı olmadı - harika okuyucu bir yürütülebilir dosyadır. yardımcı olacağını düşündüm. Çok yazık. Başka bir şey var mı? Orada diğer dosya uzantılarına bir bağlantı var, ancak fb2 yok.
 
belous :

Beyler... kim bilir yardım edin!!!!


Stratejinin özü: Stokastik sinyalde (5,14,3) giriş, stokastikte de sadece farklı bir periyotla (5,3,3) çıkış. Öyleyse, ters sinyalde değil de stokastikte nasıl çıkış yapabileceğinizi anlamıyorum?
Bir sorunum var ve nasıl çözüleceğine dair hiçbir fikrim yok, açıklamaya çalışacağım.
Yani gönderdiğim kodda 2 fonksiyon var
...

SRC kullanarak forumda kodları yayınlayın. Evet ve bağıracak bir şey yok.


 
Merhaba, kim bana danışmanla sorunun ne olduğunu söyleyebilir.Derleme yaparken parantez koymak-derlemek gerekiyor diye hata veriyor, başka bir parantez yanlış ayarlanmış diyor.Ben zaten bütünümü kırdım kafa.
Dosyalar:
 
artemka_1981 :
Merhaba, kim bana danışmanla sorunun ne olduğunu söyleyebilir.Derleme yaparken parantez koymak-derlemek gerekiyor diye hata veriyor, başka bir parantez yanlış ayarlanmış diyor.Ben zaten bütünümü kırdım kafa.

sonuna bir kaşlı ayraç koyarsanız,

OrderMagicNumber() == gibi satırlar ekleyin

ve bunlardan birine bir kapanış parantezi koyun, sonra her şey derlenir

 
Bana siparişin sona erme tarihini nasıl doğru bir şekilde ayarlayacağımı söyle? TimeCurrent()+60 yazmaya çalıştım emir açmıyor. Genel olarak, bu parametreye aracı tarafından izin verilir.
 
sss2019 :
Bana siparişin sona erme tarihini nasıl doğru bir şekilde ayarlayacağımı söyle? TimeCurrent()+60 yazmaya çalıştım emir açmıyor. Genel olarak, bu parametreye aracı tarafından izin verilir.

60 saniye çıkıyor, büyük olasılıkla çok az ayarlayamazsınız (örneğin, 10 dakikalık bir sınırım var)

ilk TimeCurrent()+60*60*24 deneyin - bir gün

ve hangi hata kodunun döndürüldüğünü görün

 
ilunga :

sonuna bir kaşlı ayraç koyarsanız,

OrderMagicNumber() == gibi satırlar ekleyin

ve bunlardan birine bir kapanış parantezi koyun, sonra her şey derlenir

Merhaba. Bir parantez eklendi ve şimdi şu hatayı '\end_of_program' - dengesiz sol parantez koyun. belirsiz ( bunlardan birine bir kapanış parantezi koyun)

if (tim< iTime ( Symbol (), PERIOD_D1 , 0 )) return ( 1 );
 return ( 0 );
 }
 
 OrderMagicNumber ()

 
artemka_1981 :
Merhaba. Bir parantez eklendi ve şimdi şu hatayı '\end_of_program' - dengesiz sol parantez koyun. belirsiz ( bunlardan birine bir kapanış parantezi koyun)

şöyle derler:

 //+------------------------------------------------------------------+
//|                                                Open_Buy_Sell.mq4 |
//|                                                                  |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#define magic 999

#property link       "http://www.metaquotes.net"
extern double   _lots         = 0.01 ;
extern int      _takeProfit   = 1200 ;
extern int       maxpos       = 1 ;     // количество поз
extern bool     _trailingStop = true;
//+------------------------------------------------------------------+

int start()
  {
   double _slBuy= 0.0 ,_slSell= 0.0 , _tpBuy= 0.0 , _tpSell= 0.0 , _opBuy= 0.0 , _opSell= 0.0 ;

//if (iVolume(Symbol(),PERIOD_D1,0)>1) return;
//     if (Volume[0]>1) return;
     if (_trailingStop){ 
     _TrailingStop();
      }
   _opBuy= NormalizeDouble ( iHigh ( Symbol (), 0 , 1 ), Digits );
   _slBuy= NormalizeDouble ( iLow ( Symbol (), PERIOD_D1 , 1 ), Digits );
   _tpBuy= NormalizeDouble (Ask+_takeProfit* Point , Digits );
       if ( _opBuy<Ask && CountPos( 1 )<maxpos)
       if (barOpen(OP_BUYSTOP)== 1 ||barOpen(OP_BUY)== 1 )
         OrderSend ( Symbol (),OP_BUYSTOP,_lots,_opBuy, 15 ,_slBuy,_tpBuy, "Open_Buy_Sell" , 0 , Green );

   _opSell= NormalizeDouble ( iLow ( Symbol (), 0 , 1 ), Digits );
   _slSell= NormalizeDouble ( iHigh ( Symbol (), PERIOD_D1 , 1 ), Digits );
   _tpSell= NormalizeDouble (Bid-_takeProfit* Point , Digits );
     if (_opSell>Bid && CountPos( 0 )<maxpos)
       if (barOpen(OP_SELLSTOP)== 1 ||barOpen(OP_SELL)== 1 )
       OrderSend ( Symbol (),OP_SELLSTOP,_lots, _opSell, 15 ,_slSell,_tpSell, "Open_Buy_Sell" , 0 , Red );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+  
 //Проверяем количесвто позиций.
   int CountPos( int type) 
{ //Описание http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=66

int i;
int col;
int count= 0 ;
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i,SELECT_BY_POS)==true)
{
if ( OrderType ()==OP_BUYSTOP && OrderSymbol ()== Symbol () && type== 1 && OrderMagicNumber ()== magic){count++;}
if ( OrderType ()==OP_SELLSTOP && OrderSymbol ()== Symbol () && type== 0 && OrderMagicNumber ()== magic){count++;}
         }
       }   
return (count);
}
//+------------------------------------------------------------------+
void _TrailingStop(){
   int i;
   double _stopLossSellF= NormalizeDouble ( iHigh ( Symbol (), 0 , 1 ), Digits ),
          _stopLossBuyF= NormalizeDouble ( iLow ( Symbol (), 0 , 1 ), Digits );
   if ( OrdersTotal ()> 0 ){
       for (i= OrdersTotal ()- 1 ; i>= 0 ; i--){
         if ( OrderSelect (i, SELECT_BY_POS)){
             if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic){
             
               if ( OrderType ()==OP_BUY && OrderOpenPrice () < _stopLossBuyF){
                   while ( IsTradeContextBusy ()) Sleep ( 1000 );
                   RefreshRates ();
                   OrderModify ( OrderTicket (), OrderOpenPrice (),_stopLossBuyF, OrderTakeProfit (), OrderExpiration (), CLR_NONE );
               }
           
               if ( OrderType ()==OP_SELL && OrderOpenPrice () > _stopLossSellF && _stopLossSellF!= 0.0 ){
                   while ( IsTradeContextBusy ()) Sleep ( 1000 );
                   RefreshRates ();
                   OrderModify ( OrderTicket (), OrderOpenPrice (),_stopLossSellF, OrderTakeProfit (), OrderExpiration (), CLR_NONE );
               }
            }
         }
      }
   }
return ;
}
int barOpen( int ty)
{
datetime tim= 0 ;
 for ( int i= 0 ; i<= OrdersTotal (); i++)
    {  
       if (! OrderSelect (i,SELECT_BY_POS,MODE_TRADES)) continue ;
       if ( OrderSymbol () != Symbol ()|| OrderMagicNumber ()!= magic|| OrderType ()!=ty) continue ; 
       if (tim< OrderOpenTime ())        
          tim= OrderOpenTime ();
   }
 for (i= 0 ; i<= OrdersHistoryTotal (); i++)
    {  
       if (! OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) continue ;
       if ( OrderSymbol () != Symbol ()|| OrderMagicNumber ()!= magic|| OrderType ()!=ty) continue ; 
       if (tim< OrderOpenTime ())        
          tim= OrderOpenTime ();
   }
 
if (tim< iTime ( Symbol (), PERIOD_D1 , 0 )) return ( 1 );
 return ( 0 );
}
 

Söyleyin bana, OrderSend komutuyla iki kez arka arkaya emir verirsem, aralarına IsTradeAllowed durum kontrol fonksiyonunu koymam gerekir mi?

yoksa gerekli değil mi ve EA, yalnızca sipariş başarıyla verildikten sonra ilk OrderSend çağrısından ikincisine geçecek mi?

IsTradeAllowed'ın hala ayarlanması gerekiyorsa, while döngüsünde hangi zaman gecikmesi ayarlanmalıdır?

 
Bu satırda bir hata var mıydı? Çok teşekkürler
 if ( OrderType ()==OP_BUYSTOP && OrderSymbol ()== Symbol () && type== 1 && OrderMagicNumber ()==MAGICMA ){count++;}
if ( OrderType ()==OP_SELLSTOP && OrderSymbol ()== Symbol () && type== 0 && OrderMagicNumber ()==MAGICMA ){count++;}
ilunga :

şöyle derler:

Şimdi, test sırasında, günlükte herhangi bir anlaşma açmıyor, Open_BuyS_SellS EURUSD diyor, Daily: OrderSend error 131

Neden: