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

 
valeryk :

bool NewBar()
{statik tarihsaat yeni çubuğu;
bool res=yanlış;
if(newbar==0)newbar=Zaman[0];
if(newbar!=Zaman[0]){res=true;newbar=Zaman[0];}
dönüş(ler);
}

Yeni bir çubuğun varlığı.

Rozetin bar açılış fiyatına yerleştirildiğini anlıyorum. Ve kapanış fiyatından bir şeye ihtiyacım var.
Programcı olmadığım için kodunuzu ekleyemedim. Özellikle bu boole yemin ediyor NewBar ()
 
supernyb :
Rozetin bar açılış fiyatına ayarlandığını anlıyorum. Ve kapanış fiyatından bir şeye ihtiyacım var.
Programcı olmadığım için kodunuzu ekleyemedim. Özellikle bu boole yemin ediyor NewBar ()
Alıntı süresine ve simge yükleme süresine dikkat edin, 15 dakika, sizce bu süre içinde değişebilir mi Kapat[0]
 //+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (NevBar()) 
     {
     //в этом блоке размещайте ваш код
     }    
//----
   return ( 0 );
  }
//-----------------------------------------------------------------------------+
// Функция контроля нового бара                                                |
//-----------------------------------------------------------------------------+
bool NevBar(){
   static int PrevTime= 0 ;
   if (PrevTime==Time[ 0 ]) return ( false );
   PrevTime=Time[ 0 ];
   return ( true );} 
 

Sana bir kez daha soruyorum. Merhaba, S. Kovalev'in ders kitabından senaryoyu temel aldım. Bir işlem açmak, zararı durdurmak, kar almak ve ardından işlemin sonunu beklemek (yani bir durdurma veya kar gerçekleştirme) için bir Uzman Danışman yapmak istiyorum ve ancak bundan sonra işlemi tekrar açtım. . Döngü yardımı ve döngü kesintileri ile denendi. Bana nasıl yapabileceğini söyle. Zararı durdurup hemen kar almanın daha kolay olacağını düşündüm, ancak fiyatın belirli bir seviyeye ulaştığında kapanması daha kolay olabilir ama şimdilik istemiyorum çünkü. Kaymaktan korkuyorum ve her nokta benim için önemli. Sonuç olarak, bir anlaşmayı veya bazen bir çifti aynı anda açtıktan sonra (ayrıca bir sorun mu var?), anlaşmayı kapattıktan sonra yeni fırsatlar açmadığı ortaya çıktı. Veya nasıl reçete yazacağımı söyleyin, böylece program bir zararı durdur veya kar al işleminin yürütülmesini bekler ve SADECE bundan sonra daha ileri gider mi?

//+------------------------------------------- --------------------+
int start() //---- fonksiyonu başlat
{
double //---- değişkenleri bildir
x,
y;
//+------------------------------------------- --------------------+
OrderSend(Symbol(),OP_BUY,0.1,Sor,3,Sor-15*Puan,Sor+15*Puan); //---- Durdurma satın almak ve yerleştirmek için bir piyasa emri ve açılış fiyatından 15 puanlık kar
//+------------------------------------------- --------------------+
while(x!=Sor-15*Puan||y!=Sor+15*Puan) //---- önceki anlaşma kapanana kadar anlaşmaların yapılmamasını istediğim koşullar, yani. olabilmek
{ //----- SADECE bir anlaşmayı açık tut
devam etmek; //---- koşulu kes ve bir sonraki adıma geç
}
//+------------------------------------------- --------------------+
dönüş; //---- dönüş işlevi
}
//+------------------------------------------- --------------------+

 

Umursamıyorsan, dur ya da al, açık emir olup olmadığını kontrol edebilir misin?

if( SiparişToplam() <1)

 

Lütfen bu durumda ne yapılabileceğini bildiriniz. Bir gösterge var. Grafiğe koymak için önce dikey bir çizgi koymanız, ardından özellikleri aramanız, numarayı kopyalamanız ve ardından bu numarayı göstergeye girmeniz gerekir.

Hindinin fareyi tıkladığınız yere yerleştirilmesini istiyorum.

Veya aşırı durumlarda, fareyi grafik üzerinde hareket ettirebilmeniz için.


Dosyalar:
indicator.mq4  3 kb
 
Begemot7 :

Sana bir kez daha soruyorum. Merhaba, S. Kovalev'in ders kitabından senaryoyu temel aldım. Bir işlem açmak, zararı durdurmak, kar almak ve ardından işlemin sonunu beklemek (yani bir durdurma veya kar gerçekleştirme) için bir Uzman Danışman yapmak istiyorum ve ancak bundan sonra işlemi tekrar açtım. . Döngü yardımı ve döngü kesintileri ile denendi. Bana nasıl yapabileceğini söyle. Zararı durdurup hemen kar almanın daha kolay olacağını düşündüm, ancak fiyatın belirli bir seviyeye ulaştığında kapanması daha kolay olabilir ama şimdilik istemiyorum çünkü. Kaymaktan korkuyorum ve her nokta benim için önemli. Sonuç olarak, bir anlaşmayı veya bazen bir çifti aynı anda açtıktan sonra (ayrıca bir sorun mu var?), anlaşmayı kapattıktan sonra yeni fırsatlar açmadığı ortaya çıktı. Veya nasıl reçete yazacağımı söyleyin, böylece program bir zararı durdur veya kar al işleminin yürütülmesini bekler ve SADECE bundan sonra daha ileri gider mi?

 int ticket=- 1 ;
int start()       //---- функеция старт            
  {
   double      //---- объявляю переменные 
  x,
  y;
   bool sel;
   //+------------------------------------------------------------------+
  sel= false ;
   if (ticket>= 0 )
   {
    sel= OrderSelect (ticket,SELECT_BY_TICKET); if (!sel) ticket=- 1 ;
   }
   if (ticket< 0 || (sel && ticket>= 0 && OrderCloseTime()> 0 )) ticket= OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Ask- 15 * Point ,Ask+ 15 * Point );
   return ;                                                           //---- функция return 
    }

Ve böylesi daha iyi (danışmanı yeniden başlatmanız durumunda):

 int ticket=- 1 ;
int init()
 {
   if ( GlobalVariableCheck ( "TICKET" )) ticket= GlobalVariableGet ( "TICKET" );
   else ticket=- 1 ;
 }
int start()          
 {
   bool sel;
  sel= false ;
   if (ticket> 0 )
   {
    sel= OrderSelect (ticket,SELECT_BY_TICKET); if (!sel) ticket=- 1 ;
   }
   if (ticket<= 0 || (sel && ticket> 0 && OrderCloseTime()> 0 ))
   {
    ticket= OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Ask- 15 * Point ,Ask+ 15 * Point );
     if (ticket> 0 ) GlobalVariableSet ( "TICKET" ,ticket);
   }
   return ; 
  }
 
r772ra :
Teklif süresine dikkat edin ve simge yükleme süresi, 15 dakika, sizce bu süre içinde değişebilir mi Kapat[0]


Teşekkürler, ihtiyacım olan şey bu! Dediğiniz gibi yaptım ve işe yaradı! Ayrıca StarPrice'a Kapat[0] yerine Kapat[1]'ı ekledim. ve simgenin kapanış fiyatlarıyla çekildiği ortaya çıktı. Aynı zamanda, düşündüğüm gibi, bir çubuk çekilmeyi beklemiyor.
 
001 :

Hindinin fareyi tıkladığınız yere yerleştirilmesini istiyorum.

Aşağıdaki işlevleri kullanarak göstergenin atıldığı noktanın koordinatlarını alabilirsiniz:

WindowXOnDropped()

PencereYonDropped()

Fiyat ve zaman:

WindowPriceOnDropped()

WindowTimeOnDropped()

 
valeryk :

bool NewBar()
{statik tarihsaat yeni çubuğu;
bool res=yanlış;
if(newbar==0)newbar=Zaman[0];
if(newbar!=Zaman[0]){res=true;newbar=Zaman[0];}
dönüş(ler);
}

Yeni bir çubuğun varlığı.


Gurunun kodunuz hakkında söylediği buydu!

Sürümünüzde, statik tarihsaat yeni çubuğu sıfıra başlatılmadı, bu yanlış.

 
Sepulca :

Ve böylesi daha iyi (danışmanı yeniden başlatmanız durumunda):

IMHO - emirlerinizi aramak ve piyasada kapanıp kapanmadığını ve nasıl kapandığını, alarak, durdurarak veya manuel olarak görmek daha iyidir. Buradan sonra farklı yönlerde dans edin.

O zaman kesinlikle her şey mükemmel olacak. Ve global değişkenler kaybolabilir...