Günlerce çalışan karmaşık mantıklar var ama bir anda donuyor. Ancak bu bazen kaynak kodu düzenlenemeyen EX5'te olur. Göstergenin veya danışmanın donmuş olduğunu yandan programlı olarak belirlemek mümkün müdür? Bu veya bu göstergenin hesaplanan kısmının istatistiklerini toplayın?
Göstergelerle, mümkün görünüyor, çünkü grafik güncellemelerini askıya alınmış bir durumda sembolleriyle öldürüyorlar. Bu, hangi göstergelerin donmaya neden olduğunu belirtmeden bile bir Uzman Danışman tarafından izlenebilir.
Ban rekorları kırdım. Yasaklar sırasında forumda bana cevap veriyorlar ama ben sadece okuyabiliyorum. Ve bir sonraki yasağın kaldırılmasından sonra, devam etmek için kimin ve nerede cevap verdiğini hatırlamak çok zor. Bu sorunu bir şekilde çözmek mümkün mü (artık banyoya girmeme önerisi olmadan)? Ve genel olarak, bazen okursunuz, ancak şu anda cevap verecek zaman yok. "Daha sonra cevap ver" diye kendime bir çeşit bayrak hatırlatması yapmak mümkün mü?
comp : Ban rekorları kırdım. Yasaklar sırasında forumda bana cevap veriyorlar ama ben sadece okuyabiliyorum. Ve bir sonraki yasağın kaldırılmasından sonra, devam etmek için kimin ve nerede cevap verdiğini hatırlamak çok zor. Bu sorunu bir şekilde çözmek mümkün mü (artık banyoya girmeme önerisi olmadan)? Ve genel olarak, bazen okursunuz, ancak şu anda cevap verecek zaman yok. "Daha sonra cevap ver" diye kendime bir çeşit bayrak hatırlatması yapmak mümkün mü?
Önce düşünmelisin, sonra yapmalısın. Ve tersi değil. O zaman hafıza ile ilgili herhangi bir sorun olmayacak.
comp : "Daha sonra cevap ver" diye kendime bir çeşit bayrak hatırlatması yapmak mümkün mü?
Seni biraz anlıyorum. Herkes acil sorunlarına çözüm istiyor. Senin durumunda, aşırıya kaçıyor. Banyoda otururken bile geliştiriciler oluşturmaya çalışıyorsunuz.
Nazik insanlar neden böyle olduğunu açıklıyor mu? Böyle olması gerekiyorsa, o zaman yönetime bir talep - sadece noktadan sonraki ilk hanenin dikkate alındığını belgelere ekleyin.
Limit emirleri veren robotun, açık bir pozisyonu kapatırken (durdurma veya kâr yoluyla olsun), kalan bekleyeni kaldırması gerekir, ancak herhangi birini değil, sihirli sayısı kapalının biletine eşit olanı kaldırmalıdır. konum. O. silme için tetikleyicinin tam olarak bir pozisyonu kapatma olayı olması gerekir. Benim için, bu durumda, bu pozisyonun nasıl kapatıldığı önemli değil (sadece, eğer kapanış SL'de ise, silinmesi gereken herhangi bir limit kalmaması şartıyla). Ama detaylandırır ve her şeyi doğru yaparsanız, tetikleyici TP'dir.
Görünüşe göre robot gecikmeyi kaldırıyor, ancak pozisyon kapatıldıktan sonra değil, yerleştirildikten hemen sonra. Ve sürekli bekleyen emirler vererek ve silerek kendi kendisiyle savaşmaya başlar. Lütfen neyin yanlış olduğunu görün.
inputdouble lot = 0.2 ;
inputdouble TakeProfitPips = 50 ;
inputdouble StopLossPips = 200 ;
int bar= 0 ;
int shift= 1 ;
int tiket;
int otkt;
double price;
int cnt;
double TPp,SLp;
int tkt;
int n;
int type;
int _OrdersTotal = 0 ;
// кол-во позиций, соответствующих критериям (текущий инструмент и заданный MagicNumber),// состоянием на текущий тикint now_OrdersTotal = 0 ;
// кол-во позиций, соответствующих критериям (текущий инструмент и заданный MagicNumber),// состоянием на предыдущий тикstaticint pre_OrdersTotal = 0 ;
// массив открытых позиций состоянием на текущий тикint now_OrdersArray[][ 2 ]; // [№ в списке][№ тикета, тип позиции]// текущий номер позиции в массиве now_OrdersArray (для перебора)int now_CurOrder = 0 ;
// текущий номер позиции в массиве pre_OrdersArray (для перебора)int pre_CurOrder = 0 ;
// массив для хранения количества закрытых позиций каждого типаint now_ClosedOrdersArray[ 6 ][ 3 ]; // [тип ордера][тип закрытия] // временные флагиbool OrderClosed = true , PendingOrderOpened = false ;
// временные переменныеint pre_OrdersArray[][ 2 ]; // [количество позиций][№ тикета, тип позиции]//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit ()
{
//---//---return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit ( constint reason)
{
//---
}
voidOnTick ()
{
if ( OrdersTotal ()== 0 && iTime ( Symbol (), PERIOD_M1 , 1 )== D'14.01.16 16:30' )
{
price= Open [shift];
tiket= OrderSend ( Symbol (), OP_SELLLIMIT ,lot,price, 3 ,price+StopLossPips* Point ,price-TakeProfitPips* Point );
if (tiket< 0 )
{
Print ( "Ошибка OrderSend № - " , GetLastError ());
}
}
if ( OrdersTotal ()!= 0 )
{
for (cnt= 0 ; cnt< OrdersTotal (); cnt++)
OrderSelect (cnt, SELECT_BY_POS ); // Если есть следующий
{ // Анализ ордеров:
price= OrderOpenPrice ();
otkt = OrderTicket ();
n=otkt;
//--------------------------------------------------------------if ( OrderType ()== OP_SELL && OrderMagicNumber ()== 0 )
{
tiket= OrderSend ( Symbol (), OP_SELLLIMIT ,lot* 3 ,price+ 100 * Point , 1 ,price+StopLossPips* Point ,price-TakeProfitPips* Point , "My order" ,n);
tiket= OrderSend ( Symbol (), OP_SELLLIMIT ,lot* 9 ,price+ 200 * Point , 1 ,price+StopLossPips* Point ,price-TakeProfitPips* Point , "My order" ,n);
}
}
}
_OrdersTotal = OrdersTotal (); // запоминаем общее количество позицийArrayResize ( now_OrdersArray, _OrdersTotal ); // изменяем размер массива открытых позиций под текущее кол-воArrayInitialize ( now_OrdersArray, 0.0 ); // обнуляем массив
now_OrdersTotal = 0 ; // обнуляем количество позиций, соответствующих критериямArrayInitialize ( now_ClosedOrdersArray, 0.0 ); // обнуляем массивы закрытых позиций и сработавших ордеров//+------------------------------------------------------------------+//| Перебираем все позиции и записываем в массив //+------------------------------------------------------------------+for ( int z = _OrdersTotal - 1 ; z >= 0 ; z -- )
{
if ( OrderSelect ( z, SELECT_BY_POS ) )
{
now_OrdersArray[now_OrdersTotal][ 0 ] = OrderTicket ();
now_OrdersArray[now_OrdersTotal][ 1 ] = OrderType ();
now_OrdersTotal ++;
}
}
ArrayResize ( now_OrdersArray, now_OrdersTotal ); // изменяем размер массива открытых позиций под кол-во позиций, соответствующих критериям//+------------------------------------------------------------------+//| Перебираем список позиций предыдущего тика, и считаем сколько закрылось позиций и//| сработало отложенных ордеров//+------------------------------------------------------------------+for ( pre_CurOrder = 0 ; pre_CurOrder < pre_OrdersTotal; pre_CurOrder ++ )
{
tkt = pre_OrdersArray[pre_CurOrder][ 0 ]; // запоминаем тикет и тип ордера
type = pre_OrdersArray[pre_CurOrder][ 1 ];
OrderClosed = true ; // предпологаем, что если это позиция, то она закрыласьfor ( now_CurOrder = 0 ; now_CurOrder < now_OrdersTotal; now_CurOrder ++ ) // перебираем все позиции из текущего списка открытых позиций
{
if ( tkt == now_OrdersArray[now_CurOrder][ 0 ] ) // если позиция с таким тикетом есть в списке,
{ OrderClosed = false ; // значит позиция не была закрыта (ордер не был удалён)break ;
}
}
if ( OrderClosed ) // если была закрыта позиция (удалён ордер),
{
if ( OrderSelect ( tkt, SELECT_BY_TICKET )) // выбиаем ее
n = tkt; // присваеваем n номер тикета
}
}
//+------------------------------------------------------------------+//| Удаляем ордер с магическим номером = тикету закрытой ранее позиции //+------------------------------------------------------------------+for ( int z = _OrdersTotal - 1 ; z >= 0 ; z -- )
{
if ( OrderSelect ( z, SELECT_BY_POS ) )
otkt = OrderTicket ();
if (n == OrderMagicNumber ())
{ OrderDelete ( otkt );}
}
return ;
}
Söylesene, bir ticaret robotunun hangi pazarda piyasaya sürüldüğünü belirlemek için yerleşik bir mekanizma var mı, FOREX ve FORTS pazarlarını belirlemeniz gerekiyor.
İyi insanlar, yardım edin, Macbook'ta MT4'e Rus dilini koyamıyorum, orada görünüyor, ancak hiyerogliflerde gösteriliyor, ancak meta düzenleyicide her şey yolunda. Her şeyi Play on mac'e koydum,
Şarap sürümü 1.9.4. Yardım için çok minnettar olurum.
Günlerce çalışan karmaşık mantıklar var ama bir anda donuyor. Ancak bu bazen kaynak kodu düzenlenemeyen EX5'te olur. Göstergenin veya danışmanın donmuş olduğunu yandan programlı olarak belirlemek mümkün müdür? Bu veya bu göstergenin hesaplanan kısmının istatistiklerini toplayın?
Göstergelerle, mümkün görünüyor, çünkü grafik güncellemelerini askıya alınmış bir durumda sembolleriyle öldürüyorlar. Bu, hangi göstergelerin donmaya neden olduğunu belirtmeden bile bir Uzman Danışman tarafından izlenebilir.
Ban rekorları kırdım. Yasaklar sırasında forumda bana cevap veriyorlar ama ben sadece okuyabiliyorum. Ve bir sonraki yasağın kaldırılmasından sonra, devam etmek için kimin ve nerede cevap verdiğini hatırlamak çok zor. Bu sorunu bir şekilde çözmek mümkün mü (artık banyoya girmeme önerisi olmadan)? Ve genel olarak, bazen okursunuz, ancak şu anda cevap verecek zaman yok. "Daha sonra cevap ver" diye kendime bir çeşit bayrak hatırlatması yapmak mümkün mü?
Önce düşünmelisin, sonra yapmalısın. Ve tersi değil. O zaman hafıza ile ilgili herhangi bir sorun olmayacak.
Altın sözler !!!
bazen okursun, ama şu anda cevap verecek zaman yok. "Daha sonra cevap ver" diye kendime bir çeşit bayrak hatırlatması yapmak mümkün mü?
"Daha sonra cevap ver" diye kendime bir çeşit bayrak hatırlatması yapmak mümkün mü?
MQL4'te "belirtilen sayısal değerin en yakın tam sayısına yuvarlanan değeri döndüren" MathRound() hakkında soru.
kod:
Sonuç:
Nazik insanlar neden böyle olduğunu açıklıyor mu? Böyle olması gerekiyorsa, o zaman yönetime bir talep - sadece noktadan sonraki ilk hanenin dikkate alındığını belgelere ekleyin.
Arkadaşlar lütfen yardım edin. Beyniniz kayıp.
Limit emirleri veren robotun, açık bir pozisyonu kapatırken (durdurma veya kâr yoluyla olsun), kalan bekleyeni kaldırması gerekir, ancak herhangi birini değil, sihirli sayısı kapalının biletine eşit olanı kaldırmalıdır. konum. O. silme için tetikleyicinin tam olarak bir pozisyonu kapatma olayı olması gerekir. Benim için, bu durumda, bu pozisyonun nasıl kapatıldığı önemli değil (sadece, eğer kapanış SL'de ise, silinmesi gereken herhangi bir limit kalmaması şartıyla). Ama detaylandırır ve her şeyi doğru yaparsanız, tetikleyici TP'dir.
Görünüşe göre robot gecikmeyi kaldırıyor, ancak pozisyon kapatıldıktan sonra değil, yerleştirildikten hemen sonra. Ve sürekli bekleyen emirler vererek ve silerek kendi kendisiyle savaşmaya başlar. Lütfen neyin yanlış olduğunu görün.
İyi insanlar, yardım edin, Macbook'ta MT4'e Rus dilini koyamıyorum, orada görünüyor, ancak hiyerogliflerde gösteriliyor, ancak meta düzenleyicide her şey yolunda. Her şeyi Play on mac'e koydum,
Şarap sürümü 1.9.4. Yardım için çok minnettar olurum.