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

 
vegetate писал(а) >>

Bir boyutu iki boyutlu diziden bir işleve nasıl geçireceğimi söyle?

kafam karıştı bir şey.

int testarray[5][2] = {1,2,3,4,5,6,7,8,9,10};// хоть так и можно записать, но в уме нужно держать что это ТАБЛИЦА

void testfunc(int &inarray[] [] ){ // массив нужно передавать "как есть", но обрабатывать можно выбранную часть
string out_str="Result: "+inarray[ i , 0 ];

for (int i=1;i<5;i++){// еще нужно учитывать, что счет в массивах начинается с НУЛЯ. "первый - нулевой"
out_str += (", "+inarray[ i , 0 ]); // здесь бы использовал строковую функцию конкатенации
}
Print(out_str);
}
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
Print("Call first:");
testfunc( testarray );
Print("Call second:");
testfunc( testarray );
//----
return(0);
}
//+-----------

 

Aynı komisyoncunun platformunun iki kopyası var. Her birinin kendi Demo hesabı ve paylaşılan klasör uzmanları vardır.

İlkini açarsam kapatırsam, ikincisini açarsam, ikincisinde şifreyi yeniden yazmam gerekir.

İkinciyi kapatıp ilkini açıyorum - şimdi ilki için bir şifreye ihtiyacım var. Bu böyle mi olmalı?

Teşekkür ederim!

 
Necron писал(а) >>

yüksek=iYüksek(NULL,60,1); Yoksa yanlış bir şey mi var?

Her şey elbette doğru. Ancak birkaç zaman dilimi veya araç kullanmanız gerekiyorsa, danışmanda uygun mantığı yapmanız gerekir.

 
Vinin >> :

Her şey elbette doğru. Ancak birkaç zaman dilimi veya araç kullanmanız gerekiyorsa, danışmanda uygun mantığı yapmanız gerekir.

Tamam, çözeceğim. Teşekkür ederim!

 

Yine ben... Beni fazla azarlama... Danışmanlarla yaklaşık iki haftalık tecrübem var...

Fraktal EA'da bir iz yaptım ve test sırasında günlükte, geyik düzenli olarak fraktallar aracılığıyla aktarılsa da OrderModify hatası 1 hatası veriyor. Kim'in FindNearFractal işlevi kullanıldı. Kod aşağıdaki gibidir:

   for ( cnt = 0 ; cnt < total ; cnt + + )
     {
       OrderSelect ( cnt , SELECT_BY_POS , MODE_TRADES ) ;
       if ( OrderType ( ) < = OP_SELL & &    // check for opened position
         OrderSymbol ( ) = = Symbol ( ) )    // check for symbol
         {
         if ( OrderType ( ) = = OP_BUY )    // long position is opened
           {
           // check for trailing stop
             if ( TrailFractal )
               {
               OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , FindNearFractal ( NULL , 0 , MODE_LOWER ) , 0 , 0 , Green ) ;
                     return ( 0 ) ;
                             }
           }
         else // go to short position
           {
             // check for trailing stop
             if ( TrailFractal )
               {               
                     OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , FindNearFractal ( NULL , 0 , MODE_UPPER ) , 0 , 0 , Red ) ;
                     return ( 0 ) ;
               
               }
           }
         }
Ve eklemelerde bir soru daha. Kod aşağıdaki gibidir:
     for ( int i = 0 ; i < OrdersTotal ( ) ; i + + )
   {
       // выбор ордера
       if ( OrderSelect ( i , SELECT_BY_POS ) = = false ) continue ;
       // not current symbol
       if ( OrderSymbol ( ) ! = Symbol ( ) ) continue ;
   }
if ( OrderType ( ) = = OP_SELL )
{
//при профите >20 pips добавится или докупится ...
 if ( OrderProfit ( ) > 20 ) //////если поставить другое условие открывает много позиций
 OrderSend ( Symbol ( ) , OP_SELL , Lots , Bid , 3 , sl_sell , 0 , "Ma+Fr" , 16384 , 0 , Red ) ;
  PeriodForSleep = ( ( Time [ 0 ] - Time [ 1 ] ) - ( TimeCurrent ( ) - Time [ 0 ] ) ) * 1000 ; 
Sleep ( PeriodForSleep ) ;
}
if ( OrderType ( ) = = OP_BUY )
{
//при профите >20 pips добавится или докупится ...
 if ( OrderProfit ( ) > 20 ) //////если поставить другое условие открывает много позиций
 OrderSend ( Symbol ( ) , OP_BUY , Lots , Ask , 3 , sl_buy , 0 , "Ma+Fr" , 16384 , 0 , Lime ) ;
   Sleep ( PeriodForSleep ) ;
}
OrderProfit()>20 yerine ekleme koşuluna koyarsanız, örneğin bir fraktal kırılma (veya genel olarak başka bir sinyal), birçok pozisyon açar. Sleep() eklemeye çalıştım - yardımcı olmadı. Burada sorun nedir?
 

genellikle OrderModify hatası 1, yeni parametreler sipariştekilerle tam olarak eşleştiğinde meydana gelir.

 
keekkenen >> :

genellikle OrderModify hatası 1, yeni parametreler sipariştekilerle tam olarak eşleştiğinde meydana gelir.

Teşekkürler, keekkenen! Parametreler farklıdır. Cevap burada bulundu. Bu hatayı puanlamak için tavsiye (konuda) ... NormalizeDouble da yardımcı olmuyor.

Ve ikinci hata hakkında (eklemeler için) ne söyleyebilirsiniz?

 
Danışmanlarda şu anda ne kadar kağıt kârının olduğunu nasıl öğrenebilirim, yani. kapatılmamış pozisyonlarda kâr?
 
dmmikl86 писал(а) >>
Danışmanlarda şu anda ne kadar kağıt kârının olduğunu nasıl öğrenebilirim, yani. kapatılmamış pozisyonlarda kâr?

KimIV, GetProfitOpenPosInPoint() işlevine sahiptir.

 
khorosh >> :

KimIV, GetProfitOpenPosInPoint() işlevine sahiptir.

mümkün mü ve işe yarayacak mı?

 extern double Level_Profit = 200 ;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start ( )
  {
//----
   double paper_money = AccountEquity ( ) - AccountBalance ( ) ;
   if ( paper_money > Level_Profit )
      {
       #include "scripts \s _close_all.mq4"
      }
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+

Yoksa script kodunu Expert Advisor'a eklemek daha mı doğru olur?