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

 
xruss >> :

Kodumun bir bölümünü biraz sonra yayınlayacağım, ama bana öyle geliyor ki bayraklarla daha havalı olurdu. onları mql4 aracılığıyla nasıl kaydedebilirim?

https://book.mql4.com/en/variables/arrays

Bu bölümün sonunda, bayrak kullanma ilkesi, yeni bir çubuğun oluşumu gerçeği örneği kullanılarak çok iyi açıklanmıştır. Benzetme yoluyla, belirli bir türden, örneğin Buy_Allowed ve Sell_Allowed gibi anlaşmaların açılmasının kabul edilebilirliğini gösterecek olan bool türünde iki değişken oluşturuyoruz. Varsayılan olarak, bu değişkenler true olarak ayarlanmıştır. Bir Buy sinyali gelirse, bir pozisyonun başarılı bir şekilde açılmasından sonra Buy_Allowed=false olarak ayarlayın, OrderSend()'den önce sadece Buy_Allowed==true ise Buy anlaşmaları için yürütme koşulunu ekleriz. Dönüş sinyali geldiğinde Buy_Allowed=true bayrağını sıfırlayın. Sell anlaşmaları için aynı şema, ancak Sell_Allowed bayrağıyla.

 
Everlost >> :

https://book.mql4.com/en/variables/arrays

Bu bölümün sonunda, bayrak kullanma ilkesi, yeni bir çubuğun oluşumu gerçeği örneği kullanılarak çok iyi açıklanmıştır. Benzetme yoluyla, belirli bir türden, örneğin Buy_Allowed ve Sell_Allowed gibi anlaşmaların açılmasının kabul edilebilirliğini gösterecek olan bool türünde iki değişken oluşturuyoruz. Varsayılan olarak, bu değişkenler true olarak ayarlanmıştır. Bir Buy sinyali gelirse, bir pozisyonun başarılı bir şekilde açılmasından sonra Buy_Allowed=false olarak ayarlayın, OrderSend()'den önce sadece Buy_Allowed==true ise Buy anlaşmaları için yürütme koşulunu ekleriz. Dönüş sinyali geldiğinde Buy_Allowed=true bayrağını sıfırlayın. Sell anlaşmaları için aynı şema, ancak Sell_Allowed bayrağıyla.

Teşekkürler, aydınlanmış olacağım. Kodun bir kısmını son mesajımda yayınladım.

 

Konunun adıyla geldim. Instruments.info, test edildi. Ticaretin kalitesini tartışmayacağım, soru şu. Test yaparken, testin geçildiği maksimum lot 0.1 idi ve buna rağmen Bakiyenin 10000 olduğu gerçeği. Meta Trader 4 222'de GBPUSD 15 üzerinde test ettim. İlginç bir şekilde, diğer bilgisayar testinde 1 lot ile iyi gitti.Ne var?

İkinci soru: Bir test raporundaki "uyumsuzluk hataları" nelerdir?

Üçüncü soru: Danışman neden sinyal veremiyor Bunun ilk soruyla bir şekilde bağlantılı olduğu izlenimini edindim, i. programda bir sorun var.. MACD Sample'ı EURUSD M1'e (standart olarak gelir) koydum, MACD OpenLevel açılış seviyesini 1'e düşürdüm - ve hiçbir şey, tek bir sinyal değil.

Kime zor değil, okuma yazma bilmeyene açıklayın.

 
xruss >> :

Teşekkürler, aydınlanmış olacağım. Kodun bir kısmını son mesajımda yayınladım.

 int    ORDtype = - 1 , ORDtime = 0 ;
double ORDprofit ;

for ( int i = OrdersHistoryTotal ( ) - 1 ; i > = 0 ; i - - ) {
  if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {
    if ( OrderSymbol ( ) = = Symbol ( ) ) {
      if ( OrderCloseTime ( ) ! = 0 & & OrderCloseTime ( ) > ORDtime ) {
        ORDtime = OrderCloseTime ( ) ;
        ORDtype = OrderType ( ) ;
        ORDprofit = OrderProfit ( ) ;
      }
    }
  }
}

//........

if ( ORDtype = = - 1 )
{
  // В истории не нашлось подходящих ордеров
}

if ( ORDtype = = OP_SELL )
{
  // Последним был закрыт Sell
}

if ( ORDtype = = OP_BUY )
{
  // Последним был закрыт Buy
}
Kodunuzun çalışan versiyonu. Çeki (OrderCloseTime()>time) boşuna kaldırdınız, çünkü onsuz tüm nokta kaybedilir - yinelenen her siparişin kapanış saatini daha önce bulunan siparişlerden en eski kapanış saati ile karşılaştırarak en son kapatılan siparişi seçeriz. ORDtime değişkenine kaydediyoruz. Sadece tarihin tüm emirlerini gözden geçiriyorsun. ORDprofit için de bir şartınız vardı ama bunu kendiniz de ekleyebilirsiniz. :)
 
Everlost >> :
Kodunuzun çalışan versiyonu. Çeki (OrderCloseTime()>time) boşuna kaldırdınız, çünkü onsuz tüm nokta kaybedilir - yinelenen her siparişin kapanış saatini daha önce bulunan siparişlerden en eski kapanış saati ile karşılaştırarak en son kapatılan siparişi seçeriz. ORDprofit için de bir şartınız vardı ama bunu kendiniz de ekleyebilirsiniz. :)

evet son siparişte kar olsa aynı yöne açılmayı yasaklamak gibi bir şartım vardı :)

çok teşekkür ederim!!!))

 
zas писал(а) >>

İkinci soru: Bir test raporundaki "uyumsuzluk hataları" nelerdir?

Birçok kez soruldu, aramayı kullanmanız sizin için daha kolay olacak...

zas yazdı >>

Test ederken, testin geçtiği maksimum lot 0.1 idi ve bu, bakiyenin 10000 olmasına rağmen. Meta Trader 4 222'de GBPUSD 15 üzerinde test ettim. İlginç bir şekilde, başka bir bilgisayarda, 1 lotlu test iyiydi . Amaç ne?

Belki başka bir bilgisayarda MT4 başka bir komisyoncunun hesabına bağlıdır?, farklı komisyoncular, farklı ticaret koşulları... Veya belki danışmanda lot rastgele belirlenir?) Danışman kodunu yapıştırın, diyor, kesin bir cevap olacak.

zas yazdı >>

Üçüncü soru: Danışman neden sinyal veremiyor Bunun ilk soruyla bir şekilde bağlantılı olduğu izlenimini edindim, i. programda bir sorun var.. MACD Sample'ı EURUSD M1'e (standart olarak gelir) koydum, MACD OpenLevel açılış seviyesini 1'e düşürdüm - ve hiçbir şey, tek bir sinyal değil.

Bir test kullanıcısıysa, test cihazının günlüğüne bakın. Bir dizi parametreyi ve danışmanın testinin sonucunu (sinyallerin olmadığı yerlerde) düzenleyin. Görünüşe göre tüm beceriksiz şeyleriniz programdaki aksaklıklardan değil, yetersiz deneyimden kaynaklanıyor ...

 
VladislavVG >> :

Seçeneklerden biri:

Ticaretin başlangıcında bool NeedAlert değişkenini true olarak ayarlayın.


Teşekkür ederim, kahretsin, ama böyle yürümeyeceğini düşündüm - döngü işe yaramayacak, görünüşe göre kaşlı ayracı unuttum))

 
Ve işte soru şu: 20 puanlık beklenen kârın mevcut mevduatın %4'ü olması için lot büyüklüğü nasıl hesaplanır?
 
xruss писал(а) >>

Teşekkürler, aydınlanmış olacağım. Kodun bir kısmını son mesajımda yayınladım.

 //+------------------------------------------------------------------+
// Проверка последнего ордера по условию                             |
//+------------------------------------------------------------------+
bool LastCloseOrd ( string Sy = "" ,//Если Sy=="" на принадлежность символу не проверяем
                   int   Type = - 1 ,//Если Typ==-1 любой тип ордера
                   int Magic = - 1 ,//Если Magic=-1любой магик
                   int Pr_Ls =    0 ) {//Если Pr_Ls =0 без проверки на профит, если <0 то фильтр лосевых , если >0 то фильтр профитных ордеров
                   int time=0 ;
if ( OrdersHistoryTotal ( ) < 1 ) { return ( false ) ; }//Если нет закрытых ордеров выходим 
   for ( int i = 0 ; i < OrdersHistoryTotal ( ) ; i + + ) {//Перебираем закрытые ордера
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {//Выбираем ордер из истории
       if ( OrderCloseTime ( ) ! = 0 ) {//Если ордер уже закрыт
         if ( Sy = = "" | | OrderSymbol ( ) = = Sy ) {//если совпадает символ, или нет проверки на символ
           if ( Type = = - 1 | | OrderType ( ) = = Type ) {//если совпадает тип, или нет проверки на тип
             if ( Magic = = - 1 | | OrderMagicNumber ( ) = = Magic ) {//если совпадает магик , или не проверки на магик
               if ( OrderCloseTime ( ) > time ) {//если время закрытия ордера больше чем предыдущее
                time = OrderCloseTime ( ) ;//записываем время закрытия (в конце цикла у нас в ловушке булет сидеть последний закрытый ордер
               }                                                  //попадающий под все условия выставленных фильтров)
             }
           }
         }
       }
     }
   }   
if ( Pr_Ls = = 0&&time!=0 ) { return ( true ) ; }//если нет условия на профит-лосс подтверждаем наличие ордера
if ( Pr_Ls < 0 & & OrderProfit ( ) < 0 ) { return ( true ) ; }//если ордер лосевый подтверждаем наличие ордера
if ( Pr_Ls > 0 & & OrderProfit ( ) > 0 ) { return ( true ) ; }//если ордер профитный подтверждаем наличие ордера
return ( false ) ;//нет ни одного попадающего под выставленные условия ордера
} 
 

Bu, test cihazındaki hatalarla ilgilidir .........

Bilen varsa lütfen söylesin.....

')' - wrong parameters count	C:\Program Files\MetaTrader - Alpari\experts\expertCCI_WILLIAMS.mq4 (64, 37)
')' - wrong parameters count	C:\Program Files\MetaTrader - Alpari\experts\expertCCI_WILLIAMS.mq4 (65, 37)
64.37 ve 65.37 sayıları ne anlama geliyor????????????