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

 
gince :

lütfen.

Mantıkla ilgili sorun - Bunu düşünemiyorum.

Gerçekten de mantıkla ilgili bir sorununuz var. Daha sonra istediğiniz kadar ertelenenlerin gösterilmesine izin veriyorsunuz, bir tanesini açtıktan sonra hepsini silmek istiyorsunuz ve ardından tüm yeni ertelenenlerin silinmesine şaşırıyorsunuz. Ardından, bir sonraki gecikme tetiklendikten sonra ne olması gerektiği hakkında daha fazla düşünmeye devam edin. Algoritma buna bağlı olacaktır.
 
Roger :
Gerçekten, mantıkla ilgili bir sorununuz var. Daha sonra istediğiniz kadar ertelenenlerin gösterilmesine izin veriyorsunuz, bir tanesini açtıktan sonra hepsini silmek istiyorsunuz ve ardından tüm yeni ertelenenlerin silinmesine şaşırıyorsunuz. Ardından, bir sonraki gecikme tetiklendikten sonra ne olması gerektiği hakkında daha fazla düşünmeye devam edin. Algoritma buna bağlı olacaktır.

Düşüncelerimi düzelttiğin için teşekkür ederim, atom zaten saplantılı.

İlk set işten çıkarmadan sonra (bir satın alma limiti diyelim), aynı yönde daha fazla işten çıkarma yapılabilir, ancak karşı tarafta bir sinyal (diyelim ki bir satış limiti) göründüğünde tüm satın alma pozisyonları ve emirleri nasıl kaldırılır?

 

İyi akşamlar! Üzgünüm, çözülmemiş bir soruna dönmek istiyorum.

 if (!Pishem&&PozyProstavleny){SaveArray(FileBuy, Buy); SaveArray(FileSell, Sell); Pishem= 1 ;}

'Satın Al' - uyumsuz türler D:\TeleTRADE\experts\pure varyant.mq4 (102, 53)

'Sat' - uyumsuz türler D:\TeleTRADE\experts\pure varyant.mq4 (102, 79)

 //записать

void SaveArray( string File, double &a[])
{
     int h = FileOpen (File, FILE_BIN | FILE_WRITE );
     if (h> 0 )
    {
       int sz = ArraySize (a); 
       FileWriteArray (h,a, 0 ,sz);
       FileClose (h);
    }
}

//прочитать

void OpenArray( string File, double &a[], int sz)
{
     int h = FileOpen (File, FILE_BIN | FILE_READ );
     if (h> 0 )
    {
       ArrayResize (a,sz);
       FileReadArray (h,a, 0 ,sz);
       FileClose (h);
    }
}
 
 
Ve sonra diyalog bir şekilde işe yaramadı ..
 
int Buy[];int Sell[];       string FileBuy="FileBuy.csv",FileSell="FileSell.csv";         

 
İyi günler. lütfen bana global bool değişkenini nasıl yazacağımı söyleyin, örneğin bool=uroven_1=false; terminali yeniden başlattıktan sonra yeni bir değere sahip olması için bunu global bir değişkende nasıl yazabilirim, teşekkürler.
 
laveosa :
İyi günler. lütfen bana global bool değişkenini nasıl yazacağımı söyleyin, örneğin bool=uroven_1=false; terminali yeniden başlattıktan sonra yeni bir değere sahip olması için bunu global bir değişkende nasıl yazabilirim, teşekkürler.


https://book.mql4.com/en/variables/globals
 
Roger :


Mantık doğrudur - emirler, olduğu kadar çok pozisyon numarasına sahip olmalıdır, biri kapanır kapanmaz geri kalan her şey yeniden hesaplanır. Bu tasarımı dene

Cevap.

Merhaba.
Ne yazık ki önerilen tasarım istenen sonucu vermiyor. Program kodu ve test cihazının günlüğündeki girişler verilir.
Samimi olarak. shurkin
18 Mart 2013.

Код программы.

//+------------------------------------------------------------------+
//|                                                     Poligon1.mq4 |
//|                                            21 февраля 2013 года. |
//|Тестирование оператора цикла for.                                 |
//+------------------------------------------------------------------+
#property copyright "21 февраля 2013 года."
#property link       ""
//+------------------------------------------------------------------+
//|Объявленные переменные                                            |
//+------------------------------------------------------------------+
int Mn= 357 ; //Magic number
int i; //Показатель счётчика итераций
double PriTP; //TP серии
int Tick; //Счётчик тиков
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----Установка серии ордеров
OrderSend ( Symbol (),OP_BUY, 0.5 ,Ask, 0 , NormalizeDouble (Bid- 35 * Point , Digits ),
NormalizeDouble (Ask+ 35 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUY, 1 ,Ask, 0 , NormalizeDouble (Bid- 25 * Point , Digits ),
NormalizeDouble (Ask+ 25 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUY, 1.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUY, 2.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUY, 3.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUYLIMIT, 1 , NormalizeDouble (Ask- 15 * Point , Digits ), 0 ,
NormalizeDouble (Bid- 40 * Point , Digits ), NormalizeDouble (Ask+ 25 * Point , Digits ),
NULL ,Mn, 0 , CLR_NONE ); //OP_BUYLIMIT
OrderSend ( Symbol (),OP_SELLSTOP, 3 , NormalizeDouble (Ask- 30 * Point , Digits ), 0 ,
NormalizeDouble (Bid+ 15 * Point , Digits ), NormalizeDouble (Ask- 75 * Point , Digits ),
NULL ,Mn, 0 , CLR_NONE ); //OP_SELLSTOP
//----
   PriTP=Bid; //PriTP
   Print ( "Кс0:" , " OrdersTotal=" , OrdersTotal ()); //Сообщение
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   Tick++; //Tick
//   Print("Кс0:"," Tick=",Tick);//Сообщение
//----
//   for(i=0;i<OrdersTotal();i++)//Инициализация цикла
//   for(i=OrdersTotal()-1; i>=0; i--)//
   for (i= 0 , int k= 0 ; i< OrdersTotal ();i++,k++) //
   {
   Print ( "Кс1:" , " Tick=" ,Tick, " i=" ,i, " k=" ,k); //Сообщение
   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) //Выбор ордера i
    {
   if (OrderSymbol()== Symbol ()) //Символ
     {
   if (OrderMagicNumber()==Mn) //Идентификационное число
      {
   if (OrderType()==OP_BUY && OrderTakeProfit()>PriTP) //Тип операции текущего выбранного ордера
       {
   OrderClose(OrderTicket(),OrderLots(),Bid, 0 , CLR_NONE ); //Закрытие позиции
   k--; //Зачем сначала прибавлять и тут же убавлять ???
       } //Закрыто if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)
      } //Закрыто if(OrderMagicNumber()==Mn)
     } //Закрыто if(OrderSymbol()==Symbol()
    } //Закрыто if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
   } //Закрыто for(i=0;i<OrdersTotal();i++)
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+ 
Записи в журнале тестера.
2013.03.18 09:42:48 2013.02.11 12:16  Poligon1 EURUSD,M15: Кс1: Tick=5 i=1 k=1
2013.03.18 09:42:48 2013.02.11 12:16  Poligon1 EURUSD,M15: Кс1: Tick =5 i=0 k=0
2013.03.18 09:42:24 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=4 i=1 k=1
2013.03.18 09:42:24 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick =4 i=0 k=0
2013.03.18 09:42:00 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=3 i=1 k=0
2013.03.18 09:42:00 2013.02.11 12:15  Poligon1 EURUSD,M15: close #4 buy 2.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3393
2013.03.18 09:42:00 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick =3 i=0 k=0
2013.03.18 09:41:36 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=2 i=2 k=1
2013.03.18 09:41:36 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=2 i=1 k=0
2013.03.18 09:41:36 2013.02.11 12:15  Poligon1 EURUSD,M15: close #2 buy 1.00 EURUSD at 1.3397 sl: 1.3370 tp: 1.3422 at price 1.3394
2013.03.18 09:41:36 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick =2 i=0 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=1 i=3 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: close #5 buy 3.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3395
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=1 i=2 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: close #3 buy 1.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3395
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=1 i=1 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: close #1 buy 0.50 EURUSD at 1.3397 sl: 1.3360 tp: 1.3432 at price 1.3395
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick =1 i=0 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс0: OrdersTotal=7
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #7 sell stop 3.00 EURUSD at 1.3367 sl: 1.3410 tp: 1.3322 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #6 buy limit 1.00 EURUSD at 1.3382 sl: 1.3355 tp: 1.3422 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #5 buy 3.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #4 buy 2.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #3 buy 1.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #2 buy 1.00 EURUSD at 1.3397 sl: 1.3370 tp: 1.3422 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #1 buy 0.50 EURUSD at 1.3397 sl: 1.3360 tp: 1.3432 ok
2013.03.18 09:41:12 Poligon1 test started
2013.03.18 09:40:59 Poligon1: loaded successfully

 
barok2 :

MT4 Uzman Danışmanı WOC0.1.2'yi (Forex Club'dan MT4 uygulaması) MT4 test cihazında test ederken, grafikteki sipariş etiketleri fiyatların üzerindedir, yani. olmayan fiyatlardan işlem yapıldı. Bunlar test cihazı hataları mı? Nasıl düzeltebilirim?

http://s017.radikal.ru/i405/1303/61/959038aaf1a9.jpg

Ve bir şey daha: Test cihazının görselleştirme modunda anlaşmalar yapılır, ancak onsuz olmaz.


Kendimi anladım. Bu, hafta sonu boyunca test cihazında artan yayılmadan (81) kaynaklanmaktadır.
 
Shurkin :
Örneğimi yanlış kopyaladığınız için. Dikkatlice bakın nerede i ve nerede k.
Neden: