Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 149

 
ALXIMIKS :

Soru aptalca ama sanki cevabı hiçbir yerde görmemişim ya da belki çarpık bakmışım:

İşlevlerde ve belki başka bir yerde, veri türünden sonra & sembolüyle karşılaştım ve yanılmıyorsam bir keresinde && gördüm.

func( int& mm_mode, string sembolü, int magic, bool& stop) {

Bu ne için? ne verir ve yapar? Daha fazla ayrıntı alabilirseniz bağlantı

Bu, referansa göre bir parametre geçiyor.
saat :


Ve konuya daha yakınsa? INIT'in örneğin bağlantı kopmaları veya diğer bazı benzer durumlarla başarısız olabileceği uzun süredir tartışılmaktadır. Çünkü öngörülemeyen durumlarda daha sonra verileri yeniden başlatmaz ve yalnızca bir kez çalışır! Yani bu tamamen doğru bir seçenek değil.
Durumunuza göre gerektiğinde kimse init () çağırma zahmetine girmez.
 
gInitTrue = false;   // В глобальных
-------------------------------------
// Сама функция нашего ИНИТА
bool myInit()
{
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные.
   return(gInitTrue =true);
}
-------------------------------------
//Вызов из старта так:
if (gInitTrue = false)
   myInit();
 

hoz :

gInitTrue = false ;   // В глобальных
-------------------------------------
// Сама функция нашего ИНИТА
bool myInit()
{
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные.
   return (gInitTrue = true );
}
-------------------------------------
//Вызов из старта так:
if (gInitTrue = false )
   myInit();

Bu aynı:

gInitTrue = false ;   // В глобальных
-------------------------------------

bool init()
{
   if
   {
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные..
   }
   return (gInitTrue = true );
}
-------------------------------------
void start()
 { //Вызов из старта так:
   if (gInitTrue = false ) init();
 }
 
001 :

En az masrafla mantığı uygulamak için hiçbir şekilde anlamayacağım.

if(...) durdurma emrini ayarla;

if(sipariş ömrü>süresi) siparişi iptal et ve if(..) yeni bir sipariş ver;

Zorluk şu ki, halihazırda açık olan birkaç pozisyon olabilir ve hepsine nasıl eşlik edilir? En kolay yol nedir?

Teşekkür ederim!

 int MagicNumber= 555 ;
//---
if ( OrdersTotal ()> 0 )
{   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
      {   //--- фильтр по символу
         if (OrderSymbol()!= Symbol ()) continue ;
         //--- фильтр по магик номеру (если такая проверка предусмотрена)
         if (OrderMagicNumber()!=MagicNumber) continue ;
         //--- срабатывает условие удаления отложенного ордера
         if (OrderOpenPrice()>vremya)
         {  
             if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP)
            {  
               if (OrderDelete(OrderTicket())== true )
               {   Sleep ( 5 * 1000 ); //после удачного удаления усыпляем советник на 5 секунд
                   if ( /*установить стоповый ордер*/ )
                  {   OrderSend (...)
                  }
               }
            }
             else return ( 0 );
         }
}  }  }
 
Zhunko :
Bu, referansa göre bir parametre geçiyor.
Durumunuza göre gerektiğinde kimse init () çağırma zahmetine girmez.


Sonra tekrar, bu anın kontrolü sorununu çözmeniz gerekiyor. Sonuçta, "nerede gerekli olduğunu" bulmak için bulmanız gerekir .. Ve örneğin bayrak aracılığıyla öğrenebilirsiniz. Örneğin, bayrağın global olacağı ortaya çıktı:

gInitTrue = false ;

Fonksiyonun en sonundaki init() içinde bir değer atayın:

gInitTrue = true ;

Ve fonksiyonun en başında, başlangıcı kontrol edeceğiz:

 if (gInitTrue != true )
    init();
doğru mu anladım Yoksa dikkate alınması gereken başka bir şey var mı?
 
hoz :


Ve konuya daha yakınsa? INIT'in örneğin bağlantı kesilmesi veya diğer bazı benzer durumlarla başarısız olabileceği uzun süredir tartışılmaktadır. Çünkü öngörülemeyen durumlarda daha sonra verileri yeniden başlatmaz ve yalnızca bir kez çalışır! Yani bu tamamen doğru bir seçenek değil.
init()'in çalışması için bir zaman sınırı yoktur, teorik olarak hesaplamalar birkaç saniye/dakika sürebilir. Burada bağlantıyı kesmek mantıklı değil. Onlar. grafikte bir baykuş başlattı -> bir tik geldi -> init() içinde hesaplamalar başladı (şu anda birçok tik gelebilir veya bağlantı kopabilir) -> sonra ilk tetikleyicinin danışmanı start() ve böylece bekler yeni bir kene için.
 
kodun nasıl doğru yazılacağını, böylece belirtilen zararı durdur veya kârı al minimum stoptan daha az ise, onları eşitleyin ve stopları minimum stop olarak kullanın. ?
 
webip :
kodun nasıl doğru yazılacağını, böylece belirtilen zararı durdur veya kârı al minimum stoptan daha az ise, onları eşitleyin ve stopları minimum stop olarak kullanın. ?
MathMax() .
 
Bana küçük bir kod söyle. Burada dosyayı açtım .... Hangi fonksiyonların yardımıyla bir kaydı kaydedebilir, kaydedebilir ve ardından kapatabilirsiniz ...
 
Zolotai :
Bana küçük bir kod söyle. Burada dosyayı açtım .... Hangi fonksiyonların yardımıyla bir kaydı kaydedebilir, kaydedebilir ve ardından kapatabilirsiniz ...

https://docs.mql4.com/ru/files