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

 
sponger :
Bunu yapabilirsiniz: Km=MathMax (i/r, Nokta ); // bölme ile ve sıfır olmayacak!
 
borilunad :
Bunu yapabilirsiniz: Km=MathMax (i/r,Nokta); // bölme ile ve sıfır olmayacak!

uuuuu!!! Kafa! Çok teşekkürler!!! Son derece sıkıcı dört saatlik bir çalışmadan sonra, test cihazının küfretmemesi için bu işlevi nasıl yapıştıracağımı hala buldum) aşağıdaki gibi bir şey çıktı.

double a=iLow(Symbol(),PERIOD_M1,MODE_LOW,m1,0); // n-dönem için minimum fiyatla dönüş çubuğu indeksi

double b=iEn Yüksek(Symbol(),PERIOD_M1,MODE_HIGH,m1,0); // n dönemler için maksimum fiyatla dönüş çubuğu dizini

double MinLOWPeriod=iLow(Symbol(),PERIOD_M1,a); // en düşük fiyatlı çubuğun fiyat değerini döndür

double MaxHIGHPeriod=iHigh(Symbol(),PERIOD_M1,b); //barın fiyat değerini en yüksek fiyatla döndür

double PriceCloseBar=iClose(Symbol(),PERIOD_M1,0); //son çubuğun kapanış fiyatının değerini döndür

double xm1=(PriceCloseBar-MinLOWPeriod)/(MathMax((MaxHIGHPeriod-MinLOWPeriod)/100,Nokta));

yazdır(xm1);

ve ayrıca formülü daha mantıklı hale getirdi;)

Teşekkür ederim!

 
Жалко, кнопочки "Спасибо" нету(
 

sponger :

Ne yazık ki "teşekkür ederim" düğmesi yok

Ancak başka bir sihirli düğme daha var: SRC , hangi kodun (veya parçalarının) sorgulayıcının gönderisinde daha bakımlı ve okunabilir hale geldiğinde, sorgulayanın karmasına artı ekleyerek ve bakanların sayısını artırarak bu kodu ve bu konuda yardım etmeye karar verin.

Sadece ts-s-s... . Bu nedenle, SRC düğmelerinin büyüsünün gizli bilgisinde, temel olarak, yalnızca sitedeki kutsal metinleri onurlandıran kılavuzlar ayrılmıştır. Örneğin, bunlar gibi.

Ve daha fazla soru çözerken gizli bilgide ustalaşmakta size burada başarılar!
 
sponger :

uuuuu!!! Kafa! Çok teşekkürler!!! Son derece sıkıcı dört saatlik bir çalışmadan sonra, test cihazının küfretmemesi için bu işlevi nasıl yapıştıracağımı hala buldum) aşağıdaki gibi bir şey çıktı.

double xm1=(PriceCloseBar-MinLOWPeriod)/(MathMax((MaxHIGHPeriod-MinLOWPeriod)/100,Nokta));

yazdır(xm1);

ve ayrıca formülü daha mantıklı hale getirdi;)

Teşekkür ederim!

Benim için zevkti! Ve DiPach'a %100 katılıyorum! İyi şanlar!
 
void ChagingLots( int Magic, double percent, double lot)
{ 
   double t= 2 ,             //коэффициент при делении,для того чтобы узнать цену закрытия
         PriceCl,         //цена закрытия части ордера
         takeprofit;       //нужна для вычислений
   int count = 0 ,order;
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)     //пробегаемся по массиву ордеров
     {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
          {
             if (OrderSymbol()== Symbol () && OrderMagicNumber() == Magic)
              {
                 if (OrderType()== OP_BUY)         //если ордер на покупку
                 {
                 takeprofit = OrderTakeProfit();   //вычисляем тейк ордера
                 PriceCl    = NormalizeDouble ((takeprofit + OrderOpenPrice())/t, Digits );   //примерную цену закрытия
                 order = OrderTicket();     //получили ордер
                 if (Bid>PriceCl) //если текущая цена оказалась выше нашей цены ,то закрываем часть ордера
                 {OrderClose(order, NormalizeDouble (lot*percent/ 100 , 2 ),PriceCl, 3 );} 
                 }
                 if ( OrderType()== OP_SELL ) // для продажи аналогично
                 {
                   takeprofit = OrderTakeProfit();
                   PriceCl    = NormalizeDouble ((takeprofit + OrderOpenPrice())/t, Digits );
                   order = OrderTicket();
                   if (Bid<PriceCl)
                   {OrderClose(order, NormalizeDouble (lot*percent/ 100 , 2 ),Bid, 3 );}
                 }
              }
          }
     }
     
}

Merhaba)

Bir pozisyonun bir kısmını kapatmak için bir fonksiyon yazmaya çalıştım ama test cihazında çalıştırmaya başladığımda 138 hatası çıkıyor.Sorunun ne olduğunu anlamadım.Lütfen yardım edin.

İşte bu işlevin çalışması gereken danışman)

Dosyalar:
zigzagx.mq4  16 kb
 
LBatters :

Merhaba)

Bir pozisyonun bir kısmını kapatmak için bir fonksiyon yazmaya çalıştım ama test cihazında çalıştırmaya başladığımda 138 hatası çıkıyor.Sorunun ne olduğunu anlamadım.Lütfen yardım edin.

İşte bu işlevin çalışması gereken danışman)

Dokümana baktınız mı, bu hata ne anlama geliyor?! Buradan cevabı bulacaksınız!

Bai hangi fiyattan kapanıyor? Ve Hücre?

 

hepiniz hoşgeldiniz
sorum daha çok meta alıntılardan gelen geliştiricilerle ilgili, ama yine de ...


Сколько баров храниться история? Т.е. с каким максимальным по сдвигу баром можно работать?

kod:

Print(iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,1200));

Print(iClose(Symbol(),0,1200));

Böyle bir kaymayı test ederken, terminal 2 durum için 0.0 verir.

,Ancak

Print(iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,120));

Print(iClose(Symbol(),0,120)); 

Her şey test edildiğinde çalışır.

Mevcut geçmişin miktarını bir şekilde düzenlemek mümkün müdür? Bu sorunla karşılaşan ve zaten bir çözüm bulan var mı?
Şimdiden teşekkürler!

 

Herkese merhaba.

Kim'in basit takip eden EA'sını eklemeye çalışıyorum, böylece tüm piyasa emirlerini kapattıktan sonra bekleyen emirleri siliyor , çalışmıyor(

siparişleri silmek için bir işlev ekledi:

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Удаление ордеров                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
void DeleteOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
   bool fd;
   int   err, i, it, k= OrdersTotal (), ot;

   if (sy== "0" ) sy= Symbol ();
   for (i=k- 1 ; i>= 0 ; i--) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
       if (ot> 1 && ot< 6 ) {
         if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || ot==op)) {
           if (mn< 0 || OrderMagicNumber()==mn) {
             for (it= 1 ; it<=NumberOfTry; it++) {
               if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) break ;
               while (!IsTradeAllowed()) Sleep ( 5000 );
              fd=OrderDelete(OrderTicket(), clDelete);
               if (fd) {
                 if (UseSound) PlaySound (SoundSuccess); break ;
              } else {
                err= GetLastError ();
                 if (UseSound) PlaySound (SoundError);
                 Print ( "Error(" ,err, ") delete order " ,GetNameOP(ot), ": " ,ErrorDescription(err), ", try " ,it);
                 Sleep ( 1000 * 5 );
              }
            }
          }
        }
      }
    }
  }
}

Sonra, ustalaşma ihtimalim olmayan bir sorunla karşılaştım, kodlarda güçlü değilim.

Sanırım şöyle bir koşul yazmanız gerekiyor:

bu sadece başka bir EA'dan bir örnek

    if (AccountProfit()<-TargetLoss || AccountProfit()>TargetProfit) 
     {
      ClosePosFirstProfit();
       if (DeleteOrders) DeleteOrders();
     }


Bana yardım et lütfen.

Dosyalar:
tral.mq4  19 kb
 
Beyler, MQL-4 uzmanları, MQ4 kodu kullanarak hindi nasıl boşaltılır ve yeniden yüklenir?