[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 21

 
forexnew :

Sıfır bölme yazabiliyorum hatırladığım kadarıyla. Ancak bunun nedeni, belirli parametrelerin yeniden hesaplanmamasıdır. Onlar. EA, çalışma oturumunun başlamasından önce başlatıldığı için doğru şekilde başlamıyor.

Tabii ki, bu onay kutuları kaldırıldı.

Böyle bir hata ile ( sıfıra bölme ), danışman daha fazla çalışmayı durdurur. Kodda sıfıra bölmenin gerçekleştiği bir yer arayın - büyük olasılıkla, herhangi bir parametrenin hesaplanması sonucunda sıfır elde edilir.
 
teşekkür ederim
 

Merhaba sevgili mqls. İşte kodla ilgili ilk sorunum.

Aslında moda. Görev göstergesi, 1. satır = son ve sondan önceki gün maks. ve 2. satır = sondan önceki gün ve sondan önceki gün koordinatlarıyla modaya uygun.

Her şey iyi olurdu, ancak daha küçük bir TF'ye geçerken, ilgili fiyat seviyesinde de olsa koordinat günün başlangıcına yapışır .... ve çizginin anlamı tamamen kaybolur.

Bir trend çizgisi nesnesi oluştururken , bunun sorumlusu datetime parametresidir. Nasıl ulaşacağım hakkında hiçbir fikrim yok. Ekstremumların fiyatının oluşum zamanını hesaplamak gerekir. Görünüşe göre, bu bilgi

tf dakikasında belirlenir. ve burada bir stoperim var. Trend çizgisinin yeniden çizilmesi ve koordinatların ekstremumlara karşılık gelen çubuklara yapışması için TF değiştirilirken tarih-saat nasıl belirlenir.

Ne yazık ki, arama bu konuyla ilgili hiçbir şey bulamadı. tavsiye için minnettar olacağım.

 

Enstrümanın tüm geçmişi için fiyat davranışını MA tarafından görmem gerekiyor, ancak grafiğe yerleştirildiğinde gösterge çizilmiyor.

Sorun nedir ?

Derlerken = 0 ve 0.

Bu arada - MT4 Terminali kilitleniyor!

 //--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window     // Индик. рисуется в основном окне
#property indicator_buffers 1        // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red       // Цвет второй линии

extern int History  = 1000000 ;             // Колич.баров в расчётной истории
extern int Aver_Bars= 1000000 ;             // Количество баров для расчёта

double Buf_0[];                     // Открытие индикаторного массива
//--------------------------------------------------------------------
int init()                           // Специальная функция init()
  {
   SetIndexBuffer ( 0 ,Buf_0);         // Назначение массива буферу
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 ); // Стиль линии
   return ;                           // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                     // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за переиод
   Sum_L;                           // Сумма значений Low  за переиод
//--------------------------------------------------------------------
   Counted_bars= IndicatorCounted (); // Количество просчитанных баров 
   i= Bars -Counted_bars- 1 ;           // Индекс первого непосчитанного
   if (i>History- 1 )                 // Если много баров то ..
      i=History- 1 ;                   // ..рассчитывать заданное колич.
   while (i>= 0 )                       // Цикл по непосчитанным барам
     {
      Sum_H= 0 ;                       // Обнуление в начале цикла
      Sum_L= 0 ;                       // Обнуление в начале цикла
       for (n=i;n<=i+Aver_Bars- 1 ;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];       // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars; // Знач. 0 буфера на i-ом баре
      i--;                           // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return ;                           // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 

Durakların başabaşa ve artan başabaşa daha fazla aktarımı olan bir danışman yazıyorum. Her şey yolunda gibi görünüyor, ancak tek bir sorun var. Durdurma, fiyat başabaş veya + başabaş konumuna hareket ettiğinde atlar. Bu sorunu çözemiyorum.

Kim bilir lütfen yardım edin.

İşte kod:

 int poz= OrdersTotal ();
for (n= 0 ;n<poz;n++){
             if ( OrderSelect (n,SELECT_BY_POS,MODE_TRADES)==true){
             if ( OrderType ()==OP_BUY){
            Prise2=Bid- OrderOpenPrice ();
             if (Prise2>( 25 * Point )){
             OrderModify ( OrderTicket (), 0 , OrderOpenPrice (), OrderTakeProfit (), 0 , Blue );}
             if (Prise>Prise3){
            Prise3=( OrderOpenPrice ()+( 35 * Point ));
            SL2= OrderOpenPrice ()+( 10 * Point );
             OrderModify ( OrderTicket (), 0 ,SL2, OrderTakeProfit (), 0 , Blue );}}
 
Vodya :

Durakların başabaşa ve artan başabaşa daha fazla aktarımı olan bir danışman yazıyorum. Her şey yolunda gibi görünüyor, ancak tek bir sorun var. Durdurma, fiyat başabaş veya + başabaş konumuna hareket ettiğinde atlar. Bu sorunu çözemiyorum.

Kim bilir lütfen yardım edin.

İşte kod:

Belki de hepsi parantez içindedir?
 
alex12 :
Belki de hepsi parantez içindedir?

Hangisinde? Eğer sonra öyleyse, bu tüm kısım değil. Sadece satın alma kodunu gösterdim ve ayrıca satılıktır.
 

lütfen yardım edin, sipariş, yüksek ile orderopenprice arasındaki mesafeden 4 kat daha fazla bir mesafede kapanmalıdır

nerede batırdım?

tüm siparişler açılıştan 3 pip kapatır

 OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
if ((High[ 0 ]- OrderOpenPrice ())* 4< OrderOpenPrice ()-Bid&& OrderType ()==OP_BUY&& OrdersTotal ()> 0 )
 {
 OrderClose ( OrderTicket (), OrderLots (),Bid, 3 );
 }
 
LazarevDenis :

lütfen yardım edin, sipariş, yüksek ile orderopenprice arasındaki mesafeden 4 kat daha fazla bir mesafede kapanmalıdır

nerede batırdım?

burada
(High[ 0 ]- OrderOpenPrice ())* 4< OrderOpenPrice ()-Bid
 
sergeev :
burada


kaptan bariz ... ve hepsi aynı, birine söyle