YALNIZCA MUM / BAR - Mum nasıl kataloglanır veya ayrıştırılır? - LÜTFEN DÜZELT BENİ!

 


YALNIZCA MUM - Mum nasıl kataloglanır veya ayrıştırılır?

LÜTFEN DÜZELT BENİ!



Boğa ve Ayı mumumuz var Bunu ayırmak istiyorum

  tıpkı çoban gibidir. çobanın çiftliği, çiftliği ve koyunları vardır.

Koyunları traş etme mevsimi geldiğinde Bay JOHN çiftliğe gidip koyunları yakalar ve ...

İlk yakalanan koyun tıraş olmak için çok küçük - John bıraktı.

Sonraki koyun iyidir John makas alır ve koyun çıplak

Sonraki koyun iyidir ve büyük yünleri vardır - John BÜYÜK makas alır ve koyun çıplak

Sıradaki koyun Koç - John bıçak alıyor ve Koç şu anda hadım


Aynısını mum / çubuklarla yapmak istiyorum
Mumumuz gidiyor Bar[0].... bekliyoruz..... gidiyor, bekliyoruz.... 15 dakika (M15) ve işte bu! ... bu ne? Kontrol!

Bullisch Candle'ım varsa ve Candle (fiyat açık [1]-fiyat yakın [1]) 2 puan çok küçükse - bırak gitsin, hiçbir şey yapmıyoruz



Bullisch Candle'ım varsa ve Candle (fiyat açık [1]-fiyat kapanış [1]) 4 puana sahipse - programı başlat

CheckForOpenS1(); fiyatımız mumumuzun + 4 Puan üstüne çıkarsa satın alma işlevini başlatın (senaryo1)

Bullisch Candle'ım varsa ve Candle (fiyat açık [1]-fiyat yakın [1]) 5 puana sahipse -Bu çok Büyük Mum- o zaman programı başlat

CheckForOpenS2(); fiyatımız mumumuzun + 14 Puan üzerine çıkarsa satın alma işlevini başlatın (senaryo2)



Bu cadıyı her mumdan istiyorum, programı başlatmak istiyorum Büyük Mumum varsa SATIN AL, çok küçük mumum varsa bir sonrakini bekleyeceğim

Yani... bu doğru ama bir fikrim var :)

Lütfen gerekli bir şey yazmayınız.

 int start() // start program 
   
double bear() // check first candle -mabey is bear? = THIS IS aur NEW function title bear body is in()
   {     // start body
       double A=Open[ 1 ];   // stay Open[1] is changeable A
       double B=Close[ 1 ];   // stay Open[1] is changeable A    
       double C=A-B;         // result
       return (C);               // take result C and put in to function bear()
   }                               //end body, NOW bear is aur C example 6 or 89 ;212; 1; 2;..;;;.
   
double bull() // check first candle -mabey is bull
   {
       double A=Open[ 1 ];   // we use double because euro/usd have point example 1.9865
       double B=Close[ 1 ];     
       double C=B-A;
       return (C);
   }

// when we have bull catalog/ segregate  him..
switch (bull())
      { 
         case 1 : break ;             // nothing happen
         case 2 : break ;             // nothing happen
         case 3 : break ;             // nothing happen
         case 4 : CheckForOpenS1(); break ; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1'
         case 5 : CheckForOpenS2(); CheckForOpenS3() break ; // start CheckForOpenS2() and S3 ....
      }

// when we have bears catalog/segregate him..
switch (bears())
      { 
         case 1 : break ;
         case 2 : break ;
         case 3 : break ;
         case 4 : CheckForOpenY1(); break ; // start CheckForOpenY1()- take it and go thrue with this.. we will see want is '...Y1'
         case 5 : CheckForOpenY2(); CheckForOpenY3(); break ; // start CheckForOpenY2() and Y3
      }


return (); // exit program wait for new tip, and ower and ower ....
}   // end


 
 

İngilizce olmayan herhangi birinin hikayenizi anlayabileceğini düşünüyor musunuz? Koyunları ve çobanları anlıyorum Bay John, ama hikaye bana hiç mantıklı gelmiyor. (Belki benim... o yüzden üzgünüm)

Ticaret/mql4 için genel tanımları kullanarak sorununuzu biraz 'uluslararası İngilizce' ile açıklayabilir misiniz?

Bu cümle ne anlama geliyor?


LÜTFEN KONU YAZMAYIN bu iyi bir el kitabı olsun
 
kronin :

İngilizce olmayan herhangi birinin hikayenizi anlayabileceğini düşünüyor musunuz? Koyunları ve çobanları anlıyorum Bay John, ama hikaye bana hiç mantıklı gelmiyor. (Belki benim... o yüzden üzgünüm)

Ticaret/mql4 için genel tanımları kullanarak sorununuzu biraz 'uluslararası İngilizce' ile açıklayabilir misiniz?

Bu cümle ne anlama geliyor?

Kronin, muhtemelen bu sadece çevrimiçi çevirmen hatasıydı, forumda her zaman oldu.
 

SADECE MUM - Pozisyon nasıl açılır? - sıradaki konu olmalı. Moderatör Sen ne düşünüyorsun? yapabilirmiyim?

Seçilen senaryoyu uyguluyoruz
Sipariş nasıl gönderilir?

 int start() // start program 
{

// We have some function here like "int CalculateCurrentOrders(string symbol)" and  "double LotsOptimized()"
// many different thing, suddenly! we have our "CheckOpen();" 

//--------------------------------

void CheckOpen()       // void - because function return nothing
{                     // start body
   int     res;         // we will use changeable "res" this is "int" value
   if ( Bid==Close[ 1 ]+ 4 * Point )   // check conditions: Bid or Ask must be 4 Point above a BAR if no - nothing happen if Yes go below
     {               // start body if
      res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 ,Open[ 1 ]+ 37 * Point , 0 , "" ,MAGICMA, 0 ,Red);   // start "res" and "res" is sending message to platform to open position 
                     // what position is in "()" allways must be the same sequence symbol , op_*** , lot size , ...)
       return ;         // if "res" do it then retunrn too ... y ... "if". Because "if" is done return too CheckOpen(). Because "CheckOpen()" is done stop and end.
     }               // stop body if

  }                   // stop body function "void CheckOpen()"
  
//-------------------------------- 

bir siparişimiz var
Ama bir fonksiyonda iki pozisyon açmak için ne yapmalıyım?
Bu senaryoda CheckForOpenS1() senaryomuz var. Fiyatımız doğru yerdeyse iki kez satın alıyoruz tabii ki

 //--------------------------------  


 
void CheckOpen1()       // define first function
{                     
   int     res;       
   if ( Bid==Close[ 1 ]+ 4 * Point )  
     {               
      res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red);  
                     
       return ;        
     }               

}   
  
void CheckOpen2()       // define second function
{                     
   int     res;       
   if ( Bid==Close[ 1 ]+ 8 * Point )   // change 8 Point ( 4 ==> 8 )
     {               
      res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red);  
                     
       return ;        
     }               

}   

//       I DONT KNOW..............

//--------------------------------  / our scenario  
void CheckForOpenS1()= true ;      
 
   void CheckOpen1()
   void CheckOpen2()
  
  
//--------------------------------  / OR LIKE THESE
int res;
if ( CheckForOpenS1() == true )
 {
 res= CheckOpen1() CheckOpen2();
 }
 
Wodzuuu :

SADECE MUM - Pozisyon nasıl açılır? - sıradaki konu olmalı. Moderatör Sen ne düşünüyorsun? yapabilirmiyim?

Seçilen senaryoyu uyguluyoruz
Sipariş nasıl gönderilir?

bir siparişimiz var
Ama bir fonksiyonda iki pozisyon açmak için ne yapmalıyım?
Bu senaryoda CheckForOpenS1() senaryomuz var. Fiyatımız doğru yerdeyse iki kez satın alıyoruz tabii ki

Ne sorduğunu gerçekten anlamıyorum. . . kendini çok belli etmiyorsun . . ya da belki sadece benim.

Bu kod size sorun çıkaracaktır. . .

 if ( Bid == Close[ 1 ] + 4 * Point )

Bu konuyu okuyun: Can fiyat != fiyat ?

 

aksi halde olabilir
birkaç olay senaryosu ile basit bir EA nasıl yazılır

küçük bir mumdu - açık Özellikler 1
ortalama mum oldu - açık Özellikler 2
büyük bir mumdu - açık Özellikler 3


switch () bu noktada uygun bence

Fonksiyon 1 , 1 pozisyon açar ve kapanmasını sağlar
2 onları koruyan 2 pozisyon açar ve kapatır
Üç açık 2 pozisyon ama farklı bir fiyata ....

ne zaman bir mumumuz olsa, her seferinde farklı şeyler yapan başka bir işlev var

Benim için yazamayacağını biliyorum , ama herhangi bir tavsiye....

 

Söz verdiğim gibi tekrar baktım ama yine de bana mantıklı gelmedi, özür dilerim.

Bu asla işe yaramaz:

 double bull() // check first candle -mabey is bull
   {
       double A=Open[ 1 ];   // we use double because euro/usd have point example 1.9865
       double B=Close[ 1 ];     
       double C=B-A;
       return (C);	// <-- C is probably never 1,2,3,4,5.....
   }

// when we have bull catalog/ segregate  him..
switch (bull())		// <-- the expression here is something like 0.00123. None of your case statements will be executed.
      { 
         case 1 : break ;             // nothing happen
         case 2 : break ;             // nothing happen
         case 3 : break ;             // nothing happen
         case 4 : CheckForOpenS1(); break ; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1'
         case 5 : CheckForOpenS2(); CheckForOpenS3() break ; // start CheckForOpenS2() and S3 ....
      }

Anahtarın nasıl kullanılacağı hakkında buradan okuyun: https://docs.mql4.com/basis/operators/switch

Bu hiç net değil:

 void CheckOpen2()       // define second function
{                     
   int     res;       
   if ( Bid==Close[ 1 ]+ 8 * Point )   // change 8 Point ( 4 ==> 8 )
     {               
      res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red);  
                     
       return ;        
     }               

} 

Eşit ifade belki istenmiyor ama ne olmalı?

< olarak okunursa, yeni bir çubuk geldiğinde hemen bir SATIŞ emri gönderir (yeni çubuğun açılış fiyatı belki < önceki çubuğun +8*Puan kapanış fiyatından daha fazla olabilir)
Eğer > şeklinde okunursa fiyatın biraz yükselmesini bekleyecek ve ardından SAT emri gönderecektir. Stratejinizi gerçekten anlamıyorum, bu yüzden böyle isteniyor olabilir.

Şunu demek istediğini de hayal edebiliyorum:

 if (Bid<Close[ 1 ] - 8 * Point )   

1 Puanın 1 Pip'e eşit olduğu 4 haneli bir komisyoncuyla mı işlem yapıyorsunuz? Aksi takdirde, fiyat sadece 0.8 pip hareket etmelidir, bu da muhtemelen istediğiniz şey değildir (Ve spread ayrıca onu karıştırabilir).

Bence kodunuzu tekrar gözden geçirmeli ve yapabildiğiniz yerde düzeltmelisiniz. Spesifik sorularınız varsa daha fazla soru sormaktan çekinmeyin. Lütfen, stratejinizin tamamen başka bir şekilde çalışabileceğini unutmayın, çünkü bir kodlayıcı ne demek istediğinizi yanlış anladı.

 

benim stratejim
mum 4 ila 5 puan arasında BOĞA görünürse , mumdan sonra ( herhangi bir koşulda ) iki Buy emri göndermeye hazır olun ( fiyat bir tane almak için gerekli seviyemize ulaşırsa ve satın alma 2'ye nasıl ulaşılır )

mum 6'dan 7'ye kadar BOĞA görünüyorsa , mumdan sonra ( herhangi bir koşulda ) üç B uy emri göndermeye hazırlanın ( fiyat bir tane almak için gerekli seviyemize ulaşırsa ve 2 ve 3 alışa nasıl ulaşılır )

Bid veya Sor'da bir yerde ufak bir hatam var EA neden çalışmıyor ... ( Bu hatayı bulamıyorum ama normalde EA yazdıklarımı çok iyi yapıyor..satın alıp kapatıyor ) ama teknik planımı gösteriyor .

ŞİMDİDEN DOĞRU ÇALIŞIYOR

Aşağıya baktığınızda çok kalabalıklaşıyor ve bazen EA Bull4 senaryolarının yerini alıyor ve senaryo Bull6 Bull4'ü açıyor ve fark ettiğim gibi aniden fikrinizi değiştirip Bull6 Bull6'yı bitiriyor .
basitleştirilebilir mi ?

 //+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#define MAGICMA   20050610


//+------------------------------------------------------------------+
//| Calculate open positions    HOW MEANY OF THIS                    |
//+------------------------------------------------------------------+

int CalculateCurrentOrders( string symbol)
  {
   int buys= 0 ,sells= 0 ;
//----
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ; 
       if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGICMA)
        {
         if (OrderType()==OP_BUY) buys++;
        }
     }
//---- return orders volume
   return (buys);
  }

//+------------------------------------------------------------------+
//| Calculate candle                                                 |
//+------------------------------------------------------------------+
bool BULL4()
   {
   if (Close[ 1 ]-Open[ 1 ]>= 4 * Point && Close[ 1 ]-Open[ 1 ]<= 5 * Point )
   return ( true );
   } 

bool BULL6()
   {
   if (Close[ 1 ]-Open[ 1 ]>= 6 * Point && Close[ 1 ]-Open[ 1 ]<= 7 * Point )
   return ( true );
   }
      
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
 
void CheckForOpenBULL41()
  {
   int     res;
   if (Bid==Close[ 1 ]+ 3 * Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.41 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Blue);
       return ;
     }
  }
  
void CheckForOpenBULL42()
  {
   int     res;
   if (Ask>OrderOpenPrice()+ 2 * Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.42 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Blue);
       return ;
     }
  }  
  
void CheckForOpenBULL61()
  {
   int     res;
   if (Bid==Close[ 1 ]+4* Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.61 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
       return ;
     }
  }
  
void CheckForOpenBULL62()
  {
   int     res;
   if (Ask>OrderOpenPrice()+ 2 * Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.62 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
       return ;
     }
  }

void CheckForOpenBULL63()
  {
   int     res;
   if (Ask>OrderOpenPrice()+ 2 * Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.63 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
       return ;
     }
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+

void CheckForCloseBULL()
{
   RefreshRates();
   if (OrderOpenPrice()+ 4 * Point < Ask)
   for ( int i = OrdersTotal (); i >= 0 ;i--)
   {
       OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
       if (OrderSymbol() == Symbol ()) 
      {
         bool ticket = true ;
         if (OrderType() == OP_BUY) ticket = OrderClose(OrderTicket(),OrderLots(),Bid, 1 ,Black);

      }
   }
} 

  
  
//+------------------------------------------------------------------+
//| Start function                                 |
//+------------------------------------------------------------------+
void start()
  {
   
   if (BULL4()== true && CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpenBULL41();
   else                                     CheckForCloseBULL();

   if (CalculateCurrentOrders( Symbol ())== 1 ) CheckForOpenBULL42();
   else                                     CheckForCloseBULL();
   
   //---//
   
   if (BULL6()== true && CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpenBULL61();
   else                                     CheckForCloseBULL();

   if (CalculateCurrentOrders( Symbol ())== 1 ) CheckForOpenBULL62();
   else                                     CheckForCloseBULL();
   
   if (CalculateCurrentOrders( Symbol ())== 2 ) CheckForOpenBULL63();
   else                                     CheckForCloseBULL(); 
    
   if (CalculateCurrentOrders( Symbol ())== 3 ) CheckForOpenBULL63();
   else                                     CheckForCloseBULL(); 
       
   if (CalculateCurrentOrders( Symbol ())== 4 ) CheckForCloseBULL();
  }
//+------------------------------------------------------------------+
 
Wodzuuu :

benim stratejim
mum 4'ten 5'e kadar BYK görünürse , mumdan sonra ( herhangi bir koşulda ) iki veri satın alma emri göndermeye hazır olun ( fiyat bir tane satın almak için gereken seviyeye ulaşırsa ve zkup 2'ye nasıl ulaşılır )

mum 6'dan 7'ye kadar BYK görünürse , mumdan sonra ( herhangi bir koşulda ) üç satın alma siparişi göndermeye hazırlanın ( fiyat bir tane satın almak için gereken seviyeye ulaşırsa ve zkup 2 ve 3'e nasıl ulaşılır )

Bid veya Sor'da bir yerde ufak bir hatam var EA neden çalışmıyor ... ( Bu hatayı bulamıyorum ama normalde EA yazdıklarımı çok iyi yapıyor..satın alıp kapatıyor ) ama teknik planımı gösteriyor .

Aşağıya baktığınızda çok kalabalıklaşıyor ve bazen EA Bull4 senaryolarının yerini alıyor ve senaryo Bull6 Bull4'ü açıyor ve fark ettiğim gibi aniden fikrinizi değiştirip Bull6 Bull6'yı bitiriyor .
basitleştirilebilir mi ?

BYK ??

Bu yanlış . . .

 for ( int i = OrdersTotal (); i >= 0 ;i--)

. . . pozisyonlar 0'dan başlar, bu nedenle OrdersTotal() - 1'den geri saymanız gerekir


Bunu yap . . . .

 void CheckForCloseBull()           // close ALL AT ONCE buy of course
{
   RefreshRates();
   if (  OrderOpenPrice()  > Ask+ 6 * Point )

. . . OrderOpenPrice() 'i alıyorsunuz ama hangi Order için? birden fazla siparişiniz açık olacak. . .



OrderSend() çağrılarınızdaki dönüş değerini tutmak için res değişkenini kullanırsınız. . . ve onunla ne yapıyorsun? hiçbir şey, neden?

İşlev dönüş değerleri nelerdir? Onları nasıl kullanırım?

 

Çok iyi cevap Raptor İngiltere


1. res sorunu
EA Hareketli Ortalama çözünürlüğü üzerinde çalışıyorum , zamanın bir fonksiyonu olarak sadece 3 kez var , çünkü yok.

İlk defa "merhaba res kullanacağız " bilgi amaçlı kullanılmıştır .

siparişi göndermek için ikinci kez . OrderSend , ' void CheckForOpen () " res mevcut olmadığında , res = 343321 olan sipariş sayısını döndürür .

ancak...
Bence " void CheckForOpen ()" bu komutun doğruluğunu gözlemlerse OrderSelect bir şekilde " void CheckForOpen () " dışında o sayıyı getirmeyi deneyeceğim ..

2. OrderOpenPrice() sorunu

kesinlikle haklısın ama bu sözdizimi şaşırtıcı derecede iyi çalışıyor :) Orada bir şeyler yapmaya çalışacağım

3. OrdersTotal() - 1 kesinlikle haklısınız,

4. BYK (POLAND)= BULL tercümanında sorun var

 

EA'mı hala anlamayanlar için bir hikaye yaz : D hehehe


Yaptığımız tüm adımlar , fonksiyonlardır . Şimdi bir bilgisayarda yazıyorum bir işlevdir. TV şovunu izliyorum , ikinci işlev , vb.
Şimdi mutfağa geçelim ...
Bir yemek kitabımız var, içindekileri açın ve sırayla noktaları okuyun
İlk Domuz pirzolası nasıl yapılır - eti bir kaseye koyun , tuz , karabiber ekleyin, patatesleri soyun
Solda etkinlik - doğru özellikler ve birkaç tema - kolay olmadıkça hayır !


Domuz pirzolası nasıl yapılır okuduktan sonra onu yapmaya , bir şeyler yapmaya başlayın . Biftek 25 dakika sürüyor ve ben de bitmeye başladım .
Beş dakika oldu M5 (beş dakika sonra) bir sonraki noktayı bir yemek kitabı okumaya başlıyoruz .
İkinci Salata nasıl yapılır - Havuçları soyun , soğanları ve diğer pislikleri soyun


Ve burada sihir gerçekleşir , çünkü çift , akçaağaç (ikinci kişi) yarattı . Bunu domuz pirzolası ve salatada aynı anda yapıyoruz . Mutfakta iki kişiyi bir arada bulundurmaya başladık .

Ne kadar çok nokta okursanız , mutfakta o kadar çok insan belirir. Mutfaktaki insanlar görevlerini tamamladıktan ve bulaşıkları yıkadıktan sonra ortadan kaybolacaklar .


Olay mumlardır - alım satım veya kapanış için çeşitli seçenekler sunar .