[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 982

 
Aleksander :

bir değişken bildirmek

başlangıçta - bir sinyal alırken, 1 ile artırın, N sinyale ulaşıldığında bir anlaşma açın,

sayacı sıfırla...

Elimden geldiğince yazdım ama nasıl sinyal ekleneceği belli değil...
 extern double      PropuskSignala             =   0 ;   //сколько сигналов инлдикатора пропускать
//-------------------
double PropuskSignalaB,PropuskSignalaS;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
//получаем сигнал: (SignalBuy==true;)
PropuskSignalaB++;   //вот здесь как записать? Чтобы прибавлялись
//получаем сигнал: (SignalSell==true;)
PropuskSignalaS++;   //вот здесь как записать? Чтобы прибавлялись

if (SignalBuyif(PropuskSignalaB>=PropuskSignala || PropuskSignalaS>=PropuskSignala){
//открываем ордер Buy
}
if (SignalSellif(PropuskSignalaS>=PropuskSignala || PropuskSignalaB>=PropuskSignala){
//открываем ордер Sell
}
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 

Tünaydın!

Bu sorunu çözmeme yardım et. Danışman tarafından yapılmıştır. Verdiği verim eğrisi ile çalışmanın mümkün olup olmadığı sorusu ortaya çıktı. Soru, ne tür bir eğrinin minimum "eğri" olarak kabul edilebileceğidir :). Eğrisini verdi. 1999-2010

PS Soru boşta değil. Gerçek üzerine bahse girersiniz ve danışmanın yolu geçici olarak bozulur.

 
001 :

Tünaydın!

Bu sorunu çözmeme yardım et. Danışman tarafından yapılmıştır. Verdiği verim eğrisi ile çalışmanın mümkün olup olmadığı sorusu ortaya çıktı. Soru, ne tür bir eğrinin minimum "eğri" olarak kabul edilebileceğidir :). Eğrisini verdi. 1999-2010

PS Soru boşta değil. Gerçek üzerine bahse girersiniz ve danışmanın yolu geçici olarak bozulur.

Her şey danışmanın kendi koduna bağlıdır. Belki de tamamen çıplaktır - test için aptal bir oyuncak. Pekala, burada bir bar testiniz var. EA'nın açık bar açma kontrolü var mı?
 
artmedia70 :
Her şey danışmanın kendi koduna bağlıdır. Belki de tamamen çıplaktır - test için aptal bir oyuncak. Pekala, burada bir bar testiniz var. EA'nın açık bar açma kontrolü var mı?


Evet, tabii ki var.

statik int PrevTime=0;
int başlangıç()
{

if (Zaman[0]<=ÖncekiZaman) return(0);
{
ÖncekiZaman=Zaman[0];

}

İlk iki ifadeyi açıklayın, lütfen.

 

ders kitabında anlamasam da,

"break" döngüyü tamamen durdurur ve EA yeni bir onay işareti bekler mi?

ve "if-else" de kullanılabilir mi, diyelim ki doğruysa "break" ?

 
gheka :

ders kitabında anlamasam da,

"break" döngüyü tamamen durdurur ve EA yeni bir onay işareti bekler mi?

ve "if-else" de kullanılabilir mi, diyelim ki doğruysa "break" ?

break tüm döngüyü keser ve döngü ifade bloğunun kapanış parantezinden sonraki satırdan kodunuzu yürütmeye devam eder.

if-else'de kullanmak mümkündür. Döngüyü kırmak için kriterleri başka nasıl kontrol ederdiniz???

 
OrderModify() işlevi, ticaret geçmişinde ayrı bir kayıt oluşturur. TrailingStop'u uygulamak için bir Uzman Danışman yazarken kullanıyorum. Onlar. TrailingStop koşulu karşılanırsa ve her saniye gerçekleşebilen StopLoss hareket ederse, geçmişte aynı sayıda satır görünür. Bu bir şekilde önlenebilir mi? Sonuçta, metatrader'da yerleşik olan TrailingStop iyi çalışıyor.
 
dzam :
OrderModify() işlevi, ticaret geçmişinde ayrı bir kayıt oluşturur. TrailingStop'u uygulamak için bir Uzman Danışman yazarken kullanıyorum. Onlar. TrailingStop koşulu karşılanırsa ve her saniye gerçekleşebilen StopLoss hareket ederse, geçmişte aynı sayıda satır görünür. Bu bir şekilde önlenebilir mi? Sonuçta, metatrader'da yerleşik olan TrailingStop iyi çalışıyor.

Fiyatı, stop değerini, stopun fiyata olan mesafesini ve takip eden adımı kullanmak daha kolay değil mi ???

Yoksa banktan girişe Zimbabve'den geçmek daha mı ilginç?

 
artmedia70 :

Fiyatı, stop değerini, stopun fiyata olan mesafesini ve takip eden adımı kullanmak daha kolay değil mi ???

Yoksa banktan girişe Zimbabve'den geçmek daha mı ilginç?

Tamam, ön kapıdan geçelim. Dikkat, bir soru daha:

İşte TrailingStop'un örnek bir uygulamasından bir kod parçası

 /---- проверяем, не надо ли передвинуть Стоп Лосс:
        //---- если размер трейлингстопа не слишком маленький,
        if ( TrailingStop > MarketInfo ( Symbol () , MODE_STOPLEVEL ) )
        {
            //---- если прибыль позиции больше TrailingStop пунктов,
            if ( NormalizeDouble ( Bid - _BuyOpenPrice , Digits ) > 
                  NormalizeDouble ( TrailingStop * Point , Digits ) )
            {
                //---- если новый уровень стоплосса выше, чем сейчас у позиции
                //---- (или если у позиции нет Стоп Лосса),
                if ( NormalizeDouble ( Bid - TrailingStop * Point , 
                    Digits ) > _BuyStopLoss
                      || _BuyStopLoss <= 0.0 )
                {
                    //---- модифицируем ордер
                    if ( ! OrderModify ( _BuyTicket , _BuyOpenPrice , 
                          NormalizeDouble ( Bid - TrailingStop * Point , 
                                           Digits ) , 
                          _BuyTakeProfit , 0 ) )
                    {
                        Alert ( " OrderModify Error # " , 
                              GetLastError () ) ;
                        return ( - 1 ) ;
                    }
                }                     

}

bu kod parçasında, OrderModify(), TrailingStop koşullarına dayalı olarak bir siparişi değiştirmek için kullanılır. OrderModify() işlevi, ticaret geçmişinde ayrı bir kayıt oluşturur. Onlar. TrailingStop koşulu karşılanırsa ve her saniye gerçekleşebilen StopLoss hareket ederse, geçmişte aynı sayıda satır görünür. Bu bir şekilde önlenebilir mi? Sonuçta, metatrader'da yerleşik olan TrailingStop iyi çalışıyor.

 
dzam :

Tamam, ön kapıdan geçelim. Dikkat, bir soru daha:

İşte TrailingStop'un örnek bir uygulamasından bir kod parçası

}

bu kod parçasında, OrderModify(), TrailingStop koşullarına dayalı olarak bir siparişi değiştirmek için kullanılır. OrderModify() işlevi, ticaret geçmişinde ayrı bir kayıt oluşturur. Onlar. TrailingStop koşulu karşılanırsa ve her saniye gerçekleşebilen StopLoss hareket ederse, geçmişte aynı sayıda satır görünür. Bu bir şekilde önlenebilir mi? Sonuçta, metatrader'da yerleşik olan TrailingStop iyi çalışıyor.


Önlenemez. Her ticaret işlemi, bir pozisyonun herhangi bir değişikliği gibi, dergide kendi girişini yaratır.