MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1552

 
законопослушный гражданин :

baykuşlar algoritmalarına göre fırsatlar açmalıdır

stop ise, bir sonraki işlem martin ile olur ve bu şekilde belirttiğim çarpma sayısına kadar devam eder (fonksiyon - OrdersClose = ..... ;).

daha fazla eğer baykuşlar. terminal ile birlikte kapatılır, sadece "otomatik ticaret" düğmesi, başka bir baykuş, daha sonra işin bir sonraki başlangıcı martingale tarafından artırılan sonuncudan değil, başlangıç partisinden başlar.

programı buna "eklemek" de güzel olurdu, ama bu düşünce şimdi aklıma geldi.

örneğin: Pazartesi günü başlangıç partisinden 10-00'de açıldı, gün içerisinde belli bir sonuca ulaşıldığında kapandı, Salı sabahı 10-00'de tekrar açıldı ve başlangıç partisinden tekrar başladı.

Tümü.

bu sorunla nasıl başa çıkılır?

 
законопослушный гражданин :

bu sorunla nasıl başa çıkılır?

sen cevap ver cevap ver

ama ortadan kayboluyorsun ve sonra yine aynı sorular

 
MakarFX :

sen cevap ver cevap ver

ama ortadan kayboluyorsun ve sonra yine aynı sorular

bana global bir değişken yaratmam gerektiğini gösterdin, denedim ama sonra bir sorum vardı

Henüz bunda iyi değilim. Zaten tarih saat OpenTime'ım var; - tarih saat ile değiştirilmesi gerekiyor   Başlangıç mı yoksa ek mi?

"ve daha sonra açık/kapalı sipariş yoksa "Başla"Lots=Lot; "   - nereye atfedileceği hiç belli değil mi?

sonra kısaca baykuşun mantığını, ondan ne istediğimi anlatmamı istediniz. tanımladım

lot kapatıldığında otomatik sıfırlama nasıl yapılır sorusuna cevap alamadım.

 
законопослушный гражданин :

bana global bir değişken yaratmam gerektiğini gösterdin, denedim ama sonra bir sorum vardı

Henüz bunda iyi değilim. Zaten tarih saat OpenTime'ım var; - tarih saat ile değiştirilmesi gerekiyor   Başlangıç mı yoksa ek mi?

"ve daha sonra açık/kapalı sipariş yoksa "Başla"Lots=Lot; "   - nereye atfedileceği hiç belli değil mi?

sonra kısaca baykuşun mantığını, ondan ne istediğimi anlatmamı istediniz. tanımladım

lot kapatıldığında otomatik sıfırlama nasıl yapılır sorusuna cevap alamadım.

Danışmanın mantığını anlatmamı istediğimde ortaya çıkan sorunu değil, genel eylemleri kastettim.

Örneğin:

bir sinyal varsa, bir sipariş açın

sipariş kârla kapandıysa, yeni bir sinyal bekliyoruz

sipariş bir kayıpla kapandıysa, lotu artırın ve yeni bir sinyal bekleyin


Stratejine ihtiyacım yok, danışmanın ne yapması gerektiğini anlamam gerekiyor

 
законопослушный гражданин :

bana global bir değişken yaratmam gerektiğini gösterdin, denedim ama sonra bir sorum vardı

Henüz bunda iyi değilim. Zaten tarih saat OpenTime'ım var; - tarih saat ile değiştirilmesi gerekiyor   Başlangıç mı yoksa ek mi?

"ve daha sonra açık/kapalı sipariş yoksa "Başla"Lots=Lot; "   - neye atıfta bulunulacağı hiç açık değil?

sonra kısaca baykuşun mantığını, ondan ne istediğimi anlatmamı istediniz. tanımladım

lot kapatıldığında otomatik sıfırlama nasıl yapılır sorusuna cevap alamadım.

Başlamak için işte fonksiyon:

 //+----------------------------------------------------------------------------+
//|  Размер лота/профита и время последней закрытой позиции                    |
//|  1 - возвращает размер лота                                                |
//|  2 - возвращает размер профита с учетом комиссии и свопа                   |
//|  3 - возвращает время закрытия ордера                                      |
//+----------------------------------------------------------------------------+
double GetInfoLastPos( int a= 1 )
  {
   datetime t= 0 ;
   double result= 0 ,l= 0 ,p= 0 ;
   int i=OrdersHistoryTotal();

   for ( int pos= 0 ; pos<i; pos++)
     {
       if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if ((OrderSymbol()== _Symbol )&&(OrderMagicNumber()==Magic))
           {
             if (OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if (t<OrderCloseTime()) {t=OrderCloseTime(); l=OrderLots(); p=OrderProfit()+OrderCommission()+OrderSwap();}
              }
           }
        }
     }
   if (a== 1 ) {result=l;} else
   if (a== 2 ) {result=p;} else
   if (a== 3 ) {result=( double )t;}
   else      {result= 0 ;}
   return (result);
  }

sipariş kayıpsa

   if (GetInfoLastPos( 2 )< 0 )
     {Lots= NormalizeDouble (GetInfoLastPos( 1 )*K_Martin,DigitsLot);}
   else 
     {Lots= NormalizeDouble (Lot,DigitsLot);}
 

Hakkında

 datetime Start;

int OnInit ()
{
   Start= TimeCurrent ();
.....................
}
void OnTick ()
{
   if (!IsTradeAllowed()) 
   {
      DrawLABEL( "Торговля" , 0 , 0 , 0 ,Red, "Торговля запрещена" );
      Start= TimeCurrent ();
       return ;
   } 
.....................
}

son kapatılan emrin zamanı Başlangıç'tan (danışmanın başlama zamanı) daha az ise

   if (GetInfoLastPos( 3 )<Start)
     {Lots= NormalizeDouble (Lot,DigitsLot);}
 
MakarFX :

Danışmanın mantığını anlatmamı istediğimde ortaya çıkan sorunu değil, genel eylemleri kastettim.

Örneğin:

bir sinyal varsa, bir sipariş açın

sipariş kârla kapandıysa, yeni bir sinyal bekliyoruz

sipariş bir kayıpla kapandıysa, lotu artırın ve yeni bir sinyal bekleyin


Stratejine ihtiyacım yok, danışmanın ne yapması gerektiğini anlamam gerekiyor

bir sinyal varsa, siparişi başlangıç lotuyla açın

sipariş kârla kapandıysa, yeni bir sinyal bekliyoruz

sipariş bir kayıpla kapandıysa, lotu artırın ve yeni bir sinyal bekleyin

eğer kâr хххх'e ( depozito para biriminde ) ulaşırsa, danışman tüm işlemleri kapatır ve lotu başlangıç olana sıfırlar

kayıp uuuu'ya ulaşırsa (yatırılan para biriminde), danışman tüm işlemleri kapatır ve lotu başlangıç değerine sıfırlar

danışman kapatılıp tekrar açıldıysa: - bir sinyal varsa, siparişi başlangıç partisiyle açın

Böyle?

 
законопослушный гражданин :

bir sinyal varsa, siparişi başlangıç lotuyla açın

sipariş kârla kapandıysa, yeni bir sinyal bekliyoruz

sipariş bir kayıpla kapandıysa, lotu artırın ve yeni bir sinyal bekleyin

eğer kâr хххх'e ( depozito para biriminde ) ulaşırsa, danışman tüm işlemleri kapatır ve lotu başlangıç olana sıfırlar

kayıp uuuu'ya ulaşırsa (yatırılan para biriminde), danışman tüm işlemleri kapatır ve lotu başlangıç değerine sıfırlar

danışman kapatılıp tekrar açıldıysa: - bir sinyal varsa, siparişi başlangıç partisiyle açın

Böyle?

Evet evet.

Ve danışman kapatılıp tekrar açıldıysa ve açık bir emir varsa ?

 
MakarFX :

Evet evet.

Ve danışman kapatılıp tekrar açıldıysa ve açık bir emir varsa ?

baykuş kapatılırsa, kapatmadan önce, açtığı tüm emirleri, kâr veya zarar ne olursa olsun kapatır,

Buna göre, tekrar açtığımızda, "temiz alan", başlangıç \u200b\u200blot.

örnekte açma sinyali veren gösterge RSI idi ama ben üç farklı baykuşu farklı göstergeler üzerinde test edeceğim.

üçü de martin eklenmesi açısından tarafımdan sonuçlandırılmıştır. bu yüzden yukarıda tartıştığımız mantığa göre bir örnek kodum varsa, umarım ücretsiz açık kaynak oldukları için diğer danışmanların kodlarını kendim yeniden işleyebilirim.

 
законопослушный гражданин :

baykuş kapatılırsa , kapatmadan önce açtığı tüm emirleri, kâr veya zarar fark etmeksizin kapatır,

Buna göre, tekrar açtığımızda "temiz alan", başlangıç partisi.

örnekte açılma sinyali veren gösterge RSI idi ama ben üç farklı baykuşu farklı göstergeler üzerinde test edeceğim.

üçü de martin katmak açısından tarafımdan sonuçlandırılmıştır. bu yüzden yukarıda tartıştığımız mantığa göre bir örnek kodum varsa, umarım ücretsiz açık kaynak oldukları için diğer danışmanların kodlarını kendim yeniden işleyebilirim.

ve baykuş, zaman çerçevesini değiştirirken, iletişim sorunları ve başka bir 100500 ve bir nedenden dolayı kapanır ..

danışmanı yeniden yüklemek doğal özüdür