[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 980

 

Size fikrin özünü anlatayım.

Mevcut çubuktan, geçmişteki ilk mevcut herhangi bir oku bulmak veya belirlemek gerekir.

Ne olacağı önemli değil - yukarı veya aşağı.

(A) Ve sonra bu bulguyu bir değişkene veya işarete kaydedin. Örneğin GlobalFlag = -1 (ok aşağıdaysa) ve yukarıdaysa +1.

Sonra fiyat daha da ileri gitti ve tekrar bir çeşit ok çekildi.

EA'daki arama döngüsü her seferinde yeni bir tik ile başlamıyor mu?

Bu döngü tekrar çalıştı ve okun henüz çizilip bir değişkende veya bayrakta tekrar saklandığını buldu, sonra

A noktası yerine getirilmiştir.

İşte böyle bir fikir.

Bayrak ve benzeri şeylerle neden uğraşasınız ki?

Daha sonra bu bayrak, yani okun bakacağı yer, sinyali onaylamak için başka bir gösterge ile kullanılacaktır.

Örneğin GlobalFlag=+1 (yukarı ok) ve başka bir hindi bip sesi çıkarıyor, bu da pazara giriyoruz anlamına geliyor.

Yani, göstergelerdeki her iki koşulu da eşleştirmek için.


Ve daha önce yazdığınız bu kodu nasıl buldunuz?İstediğimi uyguluyor mu?

Yani, okun hangi mumda olduğunu, fiyatın ne olduğunu vb. hesaplamama gerek yok. Asıl mesele gerçeği düzeltmek

bir okun varlığı ve yönü.

+1 ve -1 yerine doğru ve yanlış atamak mümkün mü ???? ya da değil?


 double DataIndUP, DataIndDN;
int     i, GlobalFlag, nBars = 250 ;   // nBars = количество проверяемых баров вглубь истории

for (i= 0 ; i<nBars; i++) 
{
   DataIndUP = iCustom ( Symbol (), Period (), "Имя индюшонка" , через запятую все параметры индюка , номер буфера стрелки вверх, i)
   DataIndDN = iCustom ( Symbol (), Period (), "Имя индюшонка" , через запятую все параметры индюка , номер буфера стрелки вниз, i)
   if (DataIndUP != EMPTY_VALUE )     // или if (DataIndUP !=0) // найдена стрелка вверх
                                     // всё зависит от того, что выдаёт буфер при отсутствии стрелки 
                                     // нажмите Ctrl+D и посмотрите что вам в окне данных будет показано
      GlobalFlag=+1                 // присвоение значения +1(стрелка вверх)  переменной 
      Break;                        //выход из цикла, так как  нашлась последняя стрелка
if (DataIndDN != EMPTY_VALUE )     // или if (DataIndDN !=0) // найдена стрелка вниз
                                     // всё зависит от того, что выдаёт буфер при отсутствии стрелки 
                                     // нажмите Ctrl+D и посмотрите что вам в окне данных будет показано
      GlobalFlag=-1                 // присвоение значения -1(стрелка вниз) переменной
      Break;                        //выход из цикла, так как  нашлась последняя стрелка
}
 
Tupen :


bu başlangıç.


yani, A giriş noktası -- satış ve satın alma maliyeti 4 puan. 1 davranış çeşidi - fiyat düşüyor, - diyelim ki giriş noktasından 5 puan sonra karı sabitliyoruz. - A puanı (hazırlık sürecinde kar sabitlemesinden önceki puan sayısı, minimuma kadar değişeceğini düşünüyorum) fiyat yükselirse de. onlar. programın hemen 4 sipariş vermesi gerekecek,)) bu programlanabilir mi?
 
Roman. :



Gizli küfür nedeniyle gönderi silindi

 
Vinin :

Gizli küfür nedeniyle gönderi silindi


Üzgünüm, cömertçe, kendimi tutamadım. Viyana Ormanlarının masallarından bıktım...
 

lütfen 4 sıralı bir program yazınız. demoya bakmanız ve tersine çevirme seçeneğini sonuna kadar düşünmeniz gerekiyor

 
Tupen :

lütfen 4 sıralı bir program yazınız. demoya bakmanız ve tersine çevirme seçeneğini sonuna kadar düşünmeniz gerekiyor


"Çığ" şubesine bakın - orada her şey, dahil olmak üzere "her şey" ile iyice düşünülmüştür. "geri dönüş seçenekleriyle düşünülmüş.

Tekerleği neden yeniden icat edin... Her şey uzun zamandır insanlar tarafından düşünülüyor. Okuyun, analiz edin, kullanın ve keyfini çıkarın.

Yakında "Bu" bisiklete (oku, karar ver) yaklaşmayacaksın ...

 

Söyle bana neden döngüsellik yok? Test cihazında EA yalnızca iki işlem açar.

dış int F = 8; //hızlı MA dönemi
harici int S = 20; //yavaş MA dönemi
harici çift Lot = 0.1; // sipariş partisi
int kayma = 5; // paragraflarda kayma.
int Sihir = 123; // uzmanın sihirli numarası
int bilet satışı;
int bilet satın al;
int başlangıç()
{
çift MAfast = iMA(NULL,0,F,0,MODE_SMA,PRICE_CLOSE,1);
double MAslow = iMA(NULL,0,S,0,MODE_SMA,PRICE_CLOSE,1);
// terminalde bilet satış bileti ile sipariş yok VEYA kapalı VE hızlı MA yavaş olandan daha düşük, sat !
if ( (OrderSelect(ticketsell,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast < MAslow )
{
// karşıt bir siparişimiz varsa al, kapat:
if ( OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == true )
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, CLR_NONE );
bilet satış = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,0,Magic,0,Red);
}
if ( (OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast > MAslow )
{
if ( OrderSelect(ticketsell,SELECT_BY_TICKET,MODE_TRADES) == true )
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE);
biletbuy = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,0,Magic,0,Blue);
}
dönüş(0);
}

 

Böyle dene

 extern int F = 8 ; //период быстрой МА
extern int S = 20 ; //период медл.МА
extern double Lots = 0.1 ; // лот ордера
int Slippage = 5 ; // проскальзывание в пп.
int Magic = 123 ; // магический номер эксперта
int ticketsell;  
int ticketbuy;

int start()
{
   double MAfast = iMA ( NULL , 0 ,F, 0 , MODE_SMA , PRICE_CLOSE , 1 );
   double MAslow = iMA ( NULL , 0 ,S, 0 , MODE_SMA , PRICE_CLOSE , 1 ); 
   
   ticketsell = - 1 ;
   ticketbuy = - 1 ;
   for ( int i = 0 ; i < OrdersTotal (); i++)
   {
       OrderSelect ( i, SELECT_BY_POS, MODE_TRADES);
       if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
      {
         if (OrderType() == OP_SELL) ticketsell = OrderTicket();
         if (OrderType() == OP_BUY)  ticketbuy  = OrderTicket();
      }
    }
   // ордера с тикетом ticketsell в терминале нету ИЛИ он закрылся И быстрая МА ниже медленной, продаем !
   if ( ( OrderSelect (ticketsell,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast < MAslow )
   {
       // если у нас при этом был противоположный ордер, бай, его закроем :
       if ( OrderSelect (ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == true )
         OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, CLR_NONE );
      ticketsell = OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage, 0 , 0 , 0 ,Magic, 0 , Red );
   } 
   if ( ( OrderSelect (ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast > MAslow )
   {
       if ( OrderSelect (ticketsell,SELECT_BY_TICKET,MODE_TRADES) == true )
         OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE );
      ticketbuy = OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage, 0 , 0 , 0 ,Magic, 0 , Blue );
   }
   return ( 0 );
} 
 
Teşekkür ederim!
 

Sorum cevapsız kaldı.

Yine de, göstergeden gelen sinyallerin sayısını nasıl filtreleyebilirsiniz? Örneğin, EA'nın üç numaralı işe başlama sinyalini kabul etmesi, yani. ilk iki sinyal geçirilir ve üçüncüsü devreye alınır. Yukarıda yazdığım gibi, bunu global değişkenler aracılığıyla uygulamaya çalıştım ama bir şeyler çalışmıyor....