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 günler. lütfen bana global booldeğ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.
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 numberint 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_BUYOrderSend ( Symbol (),OP_BUY, 1 ,Ask, 0 , NormalizeDouble (Bid- 25 * Point , Digits ),
NormalizeDouble (Ask+ 25 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( Symbol (),OP_BUY, 1.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( Symbol (),OP_BUY, 2.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( Symbol (),OP_BUY, 3.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( 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_BUYLIMITOrderSend ( 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; //PriTPPrint ( "Кс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 );
}
//+------------------------------------------------------------------+
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?
lütfen.
Mantıkla ilgili sorun - Bunu düşünemiyorum.
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.
'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)
İ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
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.
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.