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

 
alsu :
Terminale bakma zahmetinde bulunun, RSI "kod şeklinde" standart pakette.
Eğer yoksa, o zaman burada tut.
Dosyalar:
rsi.mq4  3 kb
 

MetaTrader4'te menü nasıl düzeltilir? Bazen ekranın her yerine korku saçıyor. Peki, Görev Çubuğu Windows'ta sabitlendiğinden, belki pencereler burada da sabitlenmiştir?

 

Merhaba, söyle lütfen

Şimdi bu koda sahibim:

         if (M_1<NizUroven && M_0 >=NizUroven)
                {
 for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
     {     CloseOrder();
     }
   Lot2=GetLot(MaxRisk);
NewOrder(OP_SELL,Lot2);
}


             if (M_1>VerhUroven && M_0<=VerhUroven)
               {
 for ( int j= OrdersTotal ()- 1 ;j>= 0 ;j--)
   if ( OrderSelect (j,SELECT_BY_POS,MODE_TRADES))
     {    CloseOrder();
     }
Lot2=GetLot(MaxRisk);
 NewOrder(OP_BUY,Lot2);
}



bu şekilde nasıl basitleştirilir?

 for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
     {     CloseOrder(); 
     }
   Lot2=GetLot(MaxRisk);

         if (M_1<NizUroven && M_0 >=NizUroven) 
                { NewOrder(OP_SELL,Lot2);
}
             if (M_1>VerhUroven && M_0<=VerhUroven)
               {  NewOrder(OP_BUY,Lot2);
}

 

Ve bir soru daha, altı ay optimizasyon yaptım, böyle sonuçlar aldım. Neden birçok geçişte sıfır olduğu açık değil (işlem yok)?

 
monopolie :

MetaTrader4'te menü nasıl düzeltilir? Bazen ekranın her yerine korku saçıyor. Peki, Windows'taki Görev Çubuğu sabit olduğundan, belki pencereler burada da sabitlenmiştir?

Bunun bir hata değil, bir özellik olduğunu söylüyorlar))
 
monopolie :

MetaTrader4'te menü nasıl düzeltilir? Bazen ekranın her yerine korku saçıyor. Peki, Windows'taki Görev Çubuğu sabit olduğundan, belki pencereler burada da sabitlenmiştir?


Menüye sağ tıklayın - "Sütunları otomatik boyutlandır" öğesi ve istediğiniz gibi hareket ettirin
 
griha :

Merhaba, söyle lütfen

Şimdi bu koda sahibim:



bu şekilde nasıl basitleştirilir?


bu kısım:

 for ( int j= OrdersTotal ()- 1 ;j>= 0 ;j--)
   if ( OrderSelect (j,SELECT_BY_POS,MODE_TRADES))
     {    CloseOrder();
     }
Lot2=GetLot(MaxRisk);
 NewOrder(OP_BUY,Lot2);

bir işleve koyun:

ff( int cmd)
{
   for ( int j= OrdersTotal ()- 1 ;j>= 0 ;j--)
       if ( OrderSelect (j,SELECT_BY_POS,MODE_TRADES))
      {
         CloseOrder();
      }
   double Lot2=GetLot(MaxRisk);
   NewOrder(cmd,Lot2);
}

ve ilerisi:

 if (M_1<NizUroven && M_0 >=NizUroven)
{
   ff(OP_SELL);
}

if (M_1>VerhUroven && M_0<=VerhUroven)
{
   ff(OP_BUY);
}

bu bir örnektir, görünürlükle veya MaxRisk değişkenini işleve geçirmeyle - bunu kendiniz anlayacaksınız

 
Tünaydın!
Belirli (kullanıcı tanımlı) sayıda sipariş açma sorunuyla karşılaştım.
Bu sorunu çözmesi gereken ve çözecek gibi görünen küçük bir kod yazdım, ancak anlar var
genellikle testin sonuna doğru, isteğe bağlı sayıda sipariş açıldığında.

Aşağıda kodun kendisi var.

 extern string Kolichestvo_orderov = "Количество единовременно открытых ордеров" ;
extern int OrederBuy = 1 ;
extern int OrederSell = 1 ;


int OrdS= 1 ,OrdB= 1 ,ticketBuy,ticketSell,lastticketSell= 0 ,lastticketBuy= 0 ;

//========================================================================================================//     
                                  //---- Открытие ордеров SELL ----//
//========================================================================================================//

if (OrdS<=OrederSell)
  { //----- start
 
if (trendDn==true && SthFast> 88.2 && SthSlow< 38.2 )
     {
ticketSell= OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 , 0 , 0 , 0 ,magick, 0 , Blue );OrdS++; //--- Если ордер открыт параметр OrdS увеличиваю 
     }
   } //-----end
          
//========================================================================================================//  
                                    //----Открытие ордеров BUY ----//
//========================================================================================================//  

if (OrdB<=OrederBuy)
  { //-----start

if (trendUp==true && SthFast< 11.8 && SthSlow> 61.8 )
      {
ticketBuy= OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 , 0 , 0 , 0 ,magick, 0 , Red );OrdB++; //--- Если ордер открыт параметр OrdB увеличиваю
      }

  } //------end
  

//------------------------------- Подсчет количества ордеров BUY & SELL ----------------------------------//
   
   if (ticketBuy<= OrdersHistoryTotal ()) //------ проверка тикетов тех  ордеров которые уже закрыты
   {
   for ( int ordBuy=lastticketBuy;ordBuy<= OrdersHistoryTotal ();ordBuy++) //--- перебор новых закрытых ордеров
    {
     if ( OrderSelect (ordBuy,SELECT_BY_POS,MODE_HISTORY)==true){ if ( OrderType ()==OP_BUY)OrdB--;lastticketBuy=ticketBuy;} //--- если добавился новый закрытый ордер бай, то параметр OrdB уменьшаю
    }
   }
  
   //-----
    
 if (ticketSell<= OrdersHistoryTotal ()) //------ проверка тикетов тех  ордеров которые уже закрыты
  {
 for ( int ordSell=lastticketSell;ordSell<= OrdersHistoryTotal ();ordSell++) //--- перебор новых закрытых ордеров
     {
     if ( OrderSelect (ordSell,SELECT_BY_POS,MODE_HISTORY)==true){ if ( OrderType ()==OP_SELL)OrdS--;lastticketSell=ticketSell;}  //--- если добавился новый закрытый ордер селл, то параметр OrdS уменьшаю

Sorunun daha basit çözümleri varsa, yorum yapmaktan memnuniyet duyarım.

 

Merhaba!

Lütfen bana bir grafikte metin görüntülemenin mümkün olup olmadığını söyler misiniz, bunun gibi bir şey:

   string mytext = " Hello from programmer! ";
   ObjectSetText("mycomment", mytext, 10, "Arial", Gray);
     if (ObjectFind("mycomment") == -1) {
         ObjectCreate("mycomment", OBJ_LABEL, 0, 0, 0);
         ObjectSet("mycomment", OBJPROP_CORNER, 2);
         ObjectSet("mycomment", OBJPROP_XDISTANCE, 5);
         ObjectSet("mycomment", OBJPROP_YDISTANCE, 7);}

ayrı bir işlev olarak çıktı alın, böylece buna şöyle bir şey diyebilirsiniz:

 mycomment( "Hello from programmer!" )