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

 

lütfen açılan iki basit komut dosyasına yardım edin

Zararı durdur ve belirli bir değerde belirlenen kârı al ile alış ve satış için bekleyen emirler

Mevcut fiyattan uzak. Bir şekilde mucizevi bir şekilde çalışan bir tane yazdı

ama yanlışlıkla sildim ve şimdi çalışması için ne yaptığımı hatırlayamıyorum.

tek umut sensin...

satmak:


int başlangıç()
{
OrderSend(Symbol(),OP_SELLSTOP,0.01,Bid-20*Puan,3,Bid+50*Puan,Bid-50*Puan);

dönüş(0);
}


ve satın al


int başlangıç()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Puan,3,Bid+50*Puan,Bid-50*Puan);

dönüş(0);
}

bana yardım et lütfen...

 
NickXXX :

Merhaba!

Bugün zamanla alıştırma yapıyorum.) Örneğin, belirli bir zamanda göstergeye bir şey yaptırmanız gerekiyor.

Kod aşağıdaki gibi olacaktır:

Şimdi diyelim ki sadece 21.30'da değil, 22.00, 22.30, 23.00 vb. de kondisyonumuzun düzelmesini istiyoruz...

Elbette şöyle yapabilirsiniz:

Ama bana bir şekilde mantıksız geliyor, özellikle de birçok kontrol noktası varsa. Daha hızlı olabileceğini düşünüyorum.

Soru, nasıl daha kolay yapılacağıdır (daha doğru)?)

Burada her şey geçici koşulların herhangi bir kanuna tabi olup olmamasına, bir örüntü olup olmamasına bağlıdır. Örneğin, sizin durumunuz için her yarım saatte bir: if ( TimeCurrent()%1800==0 ) {waste}. Bu zaman noktalarında mantık yoksa - sizin seçeneğiniz. Yalnız ben beğenmedim, katı bir eşitlik, şu anda kene olmazsa EA koşulu atlayacak...
 
Figar0 :
Burada her şey geçici koşulların herhangi bir kanuna tabi olup olmamasına, bir örüntü olup olmamasına bağlıdır. Örneğin, sizin durumunuz için her yarım saatte bir: if (TimeCurrent()%1800==0) {waste}. Bu zaman noktalarında mantık yoksa - sizin seçeneğiniz. Yalnız ben beğenmedim, katı bir eşitlik, şu anda kene olmazsa EA koşulu atlayacak...

Onlar. bölümün geri kalanı için kontrol elde edilir. Ama bana öyle geliyor ki, bu durumda her zaman bir kalan olacak ...

Kesinlikle eşitliğe tamamen katılıyorum, henüz düşünmedim. Prensip olarak, muhtemelen bir aralık gibi bir şey yapabilirsiniz, örneğin 16.00 - 16.03.

Ama mesele şuydu ki, her yarım saatte bir hesaplar yapacak ve yatacaktı. Sistemi sürekli gereksiz hesaplarla yüklememek için.

 
NickXXX :

Onlar. bölümün geri kalanı için kontrol elde edilir. Ama bana öyle geliyor ki, bu durumda her zaman bir kalan olacak ...


Evet, haklısın, böylesi daha iyi: if ( TimeCurrent()%1800 <60) {waste}.
 
Figar0 :

Evet, haklısın, böylesi daha iyi: if (TimeCurrent()%1800<60) {waste}.

< 0.6 veya bunun gibi bir şey. Bir bölümün geri kalanı her zaman birden azdır :)
 

Ve sonuçta, aşağıdakiler gibi çok sayıda değişken aracılığıyla:

 double Time_Mes_1= 21.30 ;
double Time_Mes_2= 22.00 ;
double Time_Mes_3= 22.30 ;
...

Bu gerçekten kötü mü? veya binmek?

Ve bir küçük soru daha, izin verirsek koşulu yerine getirmek için bir aralık (örneğin 16.00-16.03) belirleyeceğim. Yeni kenelerin gelmesine rağmen sadece bir kez nasıl çalıştırılır???

 

1. Böyle bir veri türü vardır: tarih saat. Egzotik istiyorsanız, zaman için int kullanabilirsiniz, ancak double zaten aşırıdır.

2. 5-10. sayfaları geri sar: İstediğinizi nasıl yapacağınızı söylüyor.

 

Merhaba.

Lütfen kodu düzeltmeme yardım edin.

Aşağıdaki her iki satır da hatalı.

Şimdiden teşekkür ederim.

 if( ( OrderMagicNumber ()==MAGIC || OrderMagicNumber ()== 777 ))

if( ( OrderMagicNumber ()==(MAGIC || 777 ))

Programın kendisi:

 int OrdTicket_b()
 {
   string SMB= Symbol ();
   int OrdTicket;
   int MAGIC;
   int i;
   for (i= 0 ; i< OrdersHistoryTotal (); i++)
   {
     if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
     {
       if ( OrderSymbol ()==SMB)
       {
         if ( OrderMagicNumber ()==MAGIC || OrderMagicNumber ()== 777 )
         {
           if ( OrderType ()==OP_BUY || OrderType ()==OP_SELL)
           {
            OrdTicket= OrderTicket ();
           }  
         }  
       }          
     }
   }
   return (OrdTicket);
 }
 
tara :
Lütfen insanlara iftira atmayın. Sıkıcı başka bir yere gidin, iyi olan yeter...
 
tara :

1. Böyle bir veri türü vardır: tarih saat. Egzotik istiyorsanız, zaman için int kullanabilirsiniz, ancak double zaten aşırıdır.

2. 5-10. sayfaları geri sar: İstediğinizi nasıl yapacağınızı söylüyor.

1. Burada double sadece dakika ve saat eklemek için kullanılmıştır. böylece kontrol noktalarını HH olarak atayabilirsiniz . MM (örneğin 16.23) .

2. Son sayfalara baktım tarih saat ile ilgili tabiki var ama tam olarak değil. Sadece son siparişin zamanı olan HH.MM formatında bir sonuç çıkarırlar .


Neden: