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

 
FAQ :


Anlaşıldı, sonra daha fazla soru:

ve bu nedenle mumun açılış süresini şu fonksiyonla kontrol etmeniz gerekir: iTime

Mumun açılma zamanını şu fonksiyonla kontrol etmeye çalıştım : iTime

Sipariş 15 saatlik mumda açılır...... ancak 15 saatlik mum genellikle ilk mum değildir.

Ondan önce, daha önceki mumlar 1.3000 ile zaten temas halindeydi.

Ve ihtiyacım var - böylece 1.3000'i geçen 15 saatlik mumdan önce - başka mum yoktu.

Teşekkür ederim.

 
bazen yeni başlayanlar şaşkına döner ... tam olarak mantık, basit insan mantığı. ve programlama oldukça doğrusaldır. terimlerinizi tek bir satırda düşünmeye çalışın.
 
FAQ :
bazen yeni başlayanlar şaşkına döner ... tam olarak mantık, basit insan mantığı. ve programlama oldukça doğrusaldır. terimlerinizi tek bir satırda düşünmeye çalışın.

Size fikrimi grafiksel olarak göstereyim.

http://clip2net.com/s/5vbxUK

Bu fikri tek bir satıra nasıl sığdırırsınız?

Teşekkür ederim.
 
zamanında, ters sırada. program bu şekilde analiz edecektir. Bir karar noktasında olduğunuzu hayal edin.
 
FAQ :
zamanında, ters sırada. program bu şekilde analiz edecektir. Bir karar noktasında olduğunuzu hayal edin.

Üzgünüm, niyetinizi tam olarak anlamadım.

Nasıl görünebileceğini kod şeklinde yazarsanız minnettar olurum..

Teşekkür ederim.

 
solnce600 :

Herkese iyi günler!

Böyle bir fikri nasıl kodlayacağınızı söyleyen herkese çok minnettar olurum.


TF 5 programı

Şu anda teklif 1.3150

Bir fiyat seviyesi var - 1.3000.

Fiyat düşüyor.

===================================

// Fiyat 1.3000'i geçerse

// Fiyat 1.3000'i ilk kez geçerse

// Fiyat 1.3000'i ilk kez geçerse ve geçişte 15 saatlik mumun içinde olacak (yani bu 15:00, 15:05 ..... 15:55)


// Bir anlaşma aç.

===================================

Teşekkür ederim.



bu sadece tam olarak uygulanmayan bir fikir

 harici çift çaprazSeviye = 1.3 ;
harici int saat = 15 ;

int başlat (){
    statik int geçmek = 0 ;

    Eğer ( TimeHour ( TimeCurrent ()) == saat ) { // mum saat saatine karşılık gelir
        Eğer ( isCrossPrice ( crossLevel , Bid )) { // Hemzemin geçiş geçerli Tekliftir
            çapraz ++ ;
            Eğer ( çapraz == 1 ) { // seviyenin ilk numaralandırması
                Eğer ( Bu mumda daha önce sipariş açılmadı ) { // bu kontrolü kendiniz uygulayın
                    openOrder () ; // siparişi aç - uygulamayı kendin bul
                    geçmek = 0 ;
                }
            }
        }
    }
}

bool isCrossPrice ( çift seviye , çift fiyat ){
    bool res = yanlış ;
    statik çift önceki = 0 ;

    Eğer ( önceki > 0 ) {
        Eğer (( önceki <= seviye && fiyat > seviye ) || // seviye atlama
            ( önceki >= seviye && fiyat < seviye )) { // hemzemin aşağı
            res = doğru ;
        }
    }
    önceki = fiyat ;
    dönüş ( res ) ;
}
 
keekkenen :

bu sadece tam olarak uygulanmayan bir fikir


Çok teşekkürler.
 
solnce600 :


Üzgünüm, niyetinizi tam olarak anlamadım.

Nasıl görünebileceğini kod şeklinde yazarsanız minnettar olurum..

Teşekkür ederim.


Kod hala çok uzakta, prensibi, algoritmayı anlıyorsunuz. yani algoritma oluşturmayı öğrenir öğrenmez kodla kendinizi hemen daha iyi hissedeceksiniz.
 

İkinci gün acı çekiyorum ve çözemiyorum. Son n çubuk için en düşük fiyatı bulmanız gerekir, ancak mevcut çubuktan değil, işlev aracılığıyla alınan çubuktan. İşlev, emrin açıldığı çubuğun dizinini döndürür. Bu çubuktan, tarihteki en düşük fiyat n çubuklarını bulmanız gerekiyor. Aşağıda kodum, yanlış olan ne?

 double low_price_n_bar()
 {
   
   double low_bar= 100000 , index_bar;
   
   for ( int i=time_orders; i<=count_bar; i++) //time_orders индекс бара получаемого из функции, count_bars внешняя переменная количество баров для сдвига назад по истории
   {
    index_bar= ND(iLow( Symbol (), 0 ,i));
     if (index_bar<low_bar)
    {
      low_bar=index_bar;     
    }
   
   }
   return (low_bar);
 }
 

Sevgili forum kullanıcıları! Büyük yardım talebi.


if (TimeBar==Time[0]) return(0);


double MA1 = NormalizeDouble (iMA(NULL,TimeFrame_2,MA_Period_2,MA_Shift_2,MA_Method_2,Applied_Price_2,0),Digits); // burada 0, belirtilen çubuğa göre geçerli çubuğa göre bir kaymadır. önceki dönem sayısı
//double MA21 = NormalizeDouble(iMA(NULL,timeframe_2,period_2,ma_shift_2,ma_method_2,applied_price_2,2),Digits);
double MA2 = NormalizeDouble(iMA(NULL,TimeFrame_3,MA_Period_3,MA_Shift_3,MA_Method_3,Applied_Price_3,0),Digits);
//double MA31 = NormalizeDouble(iMA(NULL,timeframe_3,period_3,ma_shift_3,ma_method_3,applied_price_3,2),Digits);
double MA3 = NormalizeDouble(iMA(NULL,TimeFrame_4,MA_Period_4,MA_Shift_4,MA_Method_4,Applied_Price_4,0),Digits);

double OsMA = NormalizeDouble(iOsMA(NULL,TimeFrame_5,FastEMA_5,SlowEMA_5,SignalSMA_5,Applied_Price_5,0),Digits);

if (MaxOrders>b && Düşük[0]>=MathMax(MA1,MA2)&& Düşük[0]>MA3 && Sor>MathMax(MA1,MA2)+DeltaOpen*Nokta && Sor>MA3 && MA2<MA3 && MA1<MA3 && OsMA>0 && Ticaret)
{
if (OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,SL,TP,"Puria_1",Magic,0,Blue) ==-1) TimeBar=0;
başka TimeBar=Zaman[0];

}
if (MaxOrders>s && Yüksek[0]<=MathMin(MA1,MA2) && Yüksek[0]<MA3 && Bid<MathMin(MA1,MA2)-DeltaOpen*Point && Bid<MA3 && MA1>MA3 && MA2>MA3 && OsMA<0 && Ticaret)
{
if (OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slippage,SL,TP,"Puria_1",Magic,0,Red) ==-1) TimeBar=0;
başka TimeBar=Zaman[0];
}

dönüş(0);


Bu koşullarla danışman, diyelim ki SATIŞ'ta bir anlaşma açar, kârla kapatır ve hemen SAT'ta başka bir anlaşma açar. Danışmana, bir sinyal geldiğinde, yalnızca bir işlemin açılması gerektiğini, yani. bir sinyal - bir anlaşma.
Şimdiden teşekkürler.