[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 55

 
Ana işim sırasında kullanmak üzere UMPC arıyorum, lütfen MT4'ün böyle bir netbook üzerinde çalışıp çalışmayacağını söyleyin http://cgi.ebay.com/4-8-TOUCH-LCD-BenQ-S6-HSDPA-UMPC-3G -NETBOOK-XP -/190490113552?pt=Laptops_Nov05&hash=item2c5a187610#ht_15003wt_1139 Çok fazla fotoğraf var o yüzden link verdim.
 
afirius :
Ana işim sırasında kullanmak üzere UMPC arıyorum, lütfen MT4'ün böyle bir netbook üzerinde çalışıp çalışmayacağını söyleyin https://www.mql5.com/go?link=https://www.ebay.com/itm/4 -8-TOUCH -LCD-BenQ-S6-HSDPA-UMPC-3G-NETBOOK-XP-/190490113552?hash=item2c5a187610&pt=Laptops_Nov05[hash]ht_15003wt_1139 Çok fazla resim var o yüzden link verdim.

Evet
 
Sergstuddek :
Merhaba. Lütfen önceden açılmış olan (son sipariş) bekleyen bir emir (durdur) açmak için program kodunun nasıl görünmesi gerektiğini yazın.


Eh, zaten bir klasik. :)

Program kodu şöyle görünmelidir:

Açık bir sipariş varsa, kurulumunun fiyatını hesaplıyoruz. Ayrıca, bu fiyata belirli bir mesafe ekleriz (negatif olabilir) - bekleyen emrin verileceği seviyeyi elde ederiz. Daha sonra, bekleyen emir olup olmadığını ve aynı zamanda bekleyen emre olan mesafenin izin verilen minimum olandan fazla veya eşit olup olmadığını kontrol ediyoruz, ardından bu seviyede bekleyen bir emir koyuyoruz. Her şey. Kod tam olarak bu şekilde görünmelidir.

İsteğiniz karşılandı mı?

 
İstenen optimizasyon parametrelerini bir metin veya başka bir dosyada MT4 test cihazına girmek mümkün müdür?
 
Sergey_Rogozin :
İstenen optimizasyon parametrelerini bir metin veya başka bir dosyada MT4 test cihazına girmek mümkün müdür?
kod tabanında otomatik optimize edici arayın
 

Bu makaleye aşinayım, otomatik iyileştiriciyi çalıştırmayı denedim, ancak benim için işe yaramadı.

Bilgi eksikliği.

Daha hızlı bir şeye ihtiyacım var.

Ancak teşekkürler.

 
drknn :


Eh, zaten bir klasik. :)

Program kodu şöyle görünmelidir:

Açık bir sipariş varsa, kurulumunun fiyatını hesaplıyoruz. Ayrıca, bu fiyata belirli bir mesafe ekleriz (negatif olabilir) - bekleyen emrin verileceği seviyeyi elde ederiz. Daha sonra, bekleyen emir olup olmadığını ve aynı zamanda bekleyen emre olan mesafenin izin verilen minimum olandan fazla veya eşit olup olmadığını kontrol ediyoruz, ardından bu seviyede bekleyen bir emir koyuyoruz. Her şey. Kod tam olarak bu şekilde görünmelidir.

İsteğiniz karşılandı mı?

+10 İyi olta... :)

Şimdi olayların gelişimi için iki seçenek var - bir kişi bu algoritmaya göre bir kod yazacak, vaka hakkında sorular soracak veya bunun bir kod değil, bir algoritma olduğunu belirtecek ve hazır bir çözüm bekleyecek ... :)

 
sergeev :

bekleyen bir bystop/selstop siparişine ihtiyacınız var

Yoksa mevcut bir siparişte zararı durdurmaya mı ihtiyacım var?


İlk seçenek: bekleyen bystop/selstop siparişi.

Görebilmem ve anlayabilmem için lütfen temel şablon tipi kodunu yazın.

 
drknn :


Eh, zaten bir klasik. :)

Program kodu şöyle görünmelidir:

Açık bir sipariş varsa, kurulumunun fiyatını hesaplıyoruz. Ayrıca, bu fiyata belirli bir mesafe ekleriz (negatif olabilir) - bekleyen emrin verileceği seviyeyi elde ederiz. Daha sonra, bekleyen emir olup olmadığını ve aynı zamanda bekleyen emre olan mesafenin izin verilen minimum olandan fazla veya eşit olup olmadığını kontrol ediyoruz, ardından bu seviyede bekleyen bir emir koyuyoruz. Her şey. Kod tam olarak bu şekilde görünmelidir.

İsteğiniz karşılandı mı?


Klasik iyidir, ama yine de bir sorun var)))

Teorik olarak bunu anlıyorum ama pratikte çalışmıyor, belki koduma bakıp neyin yanlış olduğunu söyleyebilirsin.

 #property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
// Суть советника в том что сначала он открывает первый ордер на покупку
// затем выставляет стопы в две стороны
// в одну сторону как продолжене уже открытого ордера
// в другую в два раза больше в случае разворота графика
// стопы выставляются по отношению к последнему открытому советником ордеру
// с каждым новым открытием нового отложеного ордера, все старые удаляються
// а ноые отложеные стопы уже открываются относительно нового открытого ордера.
#define MAGIC  20101012
extern double Lot= 1 ;            // Размер лота
extern int TP= 0 ;                // Тейкпрофит
extern int SL= 0 ;                // СтопЛосс
extern int DS= 0 ;                // Дистанция  для открытия ордера в противоположну сторону
int buys= 0 ,sells= 0 ;
int i= 0 ;
//-----------------------------------------------------
void DeleteStopOrders()
{
  int res;
  for ( int i= 0 ;i< OrdersTotal ();i++)
  {
    if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false) break ;
    if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGIC)
    {
      if (OrderType()==OP_SELLSTOP)
        res=OrderDelete(OrderTicket());
      if (OrderType()==OP_BUYSTOP)
        res=OrderDelete(OrderTicket());
     }
  }
}
        
void OpenBuy()
    
   {
   int tickbuy2  = OrderSend ( Symbol (), OP_BUY, Lot,  NormalizeDouble (Ask, Digits ), 5 , Ask-SL* Point ,Ask+TP* Point , NULL , MAGIC, 0 , Green ); // покупка первого ордера при запуске советника
   }
//+------------------------------------------------------------------+
//| считаем количество открытых ордеров                              |
//+------------------------------------------------------------------+
int CalculateCurrentOrders1( 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()==MAGIC)
        {
         if (OrderType()==OP_BUY)  buys++;
         if (OrderType()==OP_SELL) sells++;
        }
     }
//---- return orders volume
   return (buys+sells);   
}
//+------------------------------------------------------------------+
//| считаем количество отложеных ордеров                              |
//+------------------------------------------------------------------+
int CalculateCurrentOrders2( 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()==MAGIC)
        {
         if (OrderType()==OP_BUYSTOP)  buys++;
         if (OrderType()==OP_SELLSTOP) sells++;
        }
     }
//---- return orders volume
   return (buys+sells);   
}

int OpenStops()

{ for ( int i= 0 ;i< OrdersTotal ();i++)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_BUY)   // Проверка на то что открытый ордер на покупку
int ticket;
double LotSize=OrderLots();                                                                                 // Размер лота открытого ордера
double OpenPrice=OrderOpenPrice();                                                                          // Цена открытия открытого ордера
ticket= OrderSend ( Symbol (),OP_SELLSTOP,LotSize* 2 ,OpenPrice-DS* Point , 0 ,SL* Point ,TP* Point , "" ,MAGIC, 0 , Red );            // Открытие отложки на продажу в противополжну сторону до открытого ордера   
ticket= OrderSend ( Symbol (),OP_BUYSTOP,Lot,OpenPrice+TP* Point , 0 ,SL* Point ,TP* Point , "" ,MAGIC, 0 , Blue );                  // Открытие отложки на покупку в сторону продолжения до открытого ордера

if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL)  // Проверка на то что открытый ордер на продажу
ticket= OrderSend ( Symbol (),OP_SELLSTOP,Lot,OpenPrice-TP* Point , 0 ,SL* Point ,TP* Point , "" ,MAGIC, 0 , Red );                  // Открытие отложки на покупку в сторону продолжения до открытого ордера
ticket= OrderSend ( Symbol (),OP_BUYSTOP,LotSize* 2 ,OpenPrice+DS* Point , 0 ,SL* Point ,TP* Point , "" ,MAGIC, 0 , Blue );            // Открытие отложки на покупку в противополжну сторону до открытого ордера
}
}
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  if (CalculateCurrentOrders1( Symbol ())== 0 )
   OpenBuy();
  if (CalculateCurrentOrders2( Symbol ())<= 1 )
  DeleteStopOrders();
  if (CalculateCurrentOrders2( Symbol ())<= 1 )
   OpenStops();
//----
   return ( 0 );
Bunun basit bir danışman olduğunu anlıyorum, ancak yolculuğuma yeni başlıyorum))) ve zaten bir sorun var
 

Gösterge sorusu.

Çapraz gösterge. Bir yönde çok sayıda ok çizer, ardından diğer yönde çok sayıda ok çizer. Nasıl yapılır, sadece ilk olanlar çizilir. Kodda olduğu gibi denedim ama geçiş yaparken zaman çerçevesi değişiyor.

Nasıl doğru yapacağımı söyle.

 for ( int i=limit- 1 ;i>= 0 ;i--)
   {      
         if ( s == 0 &&    условие продажи)
               {Продажа[i] = High[i]+point* Point ;            
                s= 1 ; b= 0 ;}               
      
         if (b == 0 &&     условие покупки)
        
          
              {Покупка[i] = Low[i]-point* Point ; 
               s= 0 ; b= 1 ;}
   }
Neden: