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

 
Merhaba. Söyleyin bana, danışman piyasa fiyatından pozisyon açmalı, bir emrin açılıp açılmadığını ve açılış fiyatını nasıl belirleyebilirim?
 
awega :
Merhaba. Söyleyin bana, danışman piyasa fiyatından pozisyon açmalı, bir emrin açılıp açılmadığını ve açılış fiyatını nasıl belirleyebilirim?
https://book.mql4.com/en/
 
Şimdiki zaman nasıl öğrenilir?
 
Birkaç türdeki değerlerden bileşik bir sonuç döndüren işlevi uygulamak gerekiyor, lütfen bunu nasıl daha iyi yapacağımı söyler misiniz? Yoksa bu fonksiyonun değerleri için sadece global değişkenler mi kullanmalıyız?
 
splxgf :
https://book.mql4.com/en/
Biliyorsan, hangi konuyu arayacağımı söyle
 
//+------------------------------------------------------------------+
//|                                                       10pips.mq4 |
//|                                                        fortrader |
//|                                                 www.fortrader.ru |
//+------------------------------------------------------------------+
#property copyright "fortrader"
#property link       "www.fortrader.ru"

extern int        TakeProfit_Buy = 10 ;
extern int        StopLoss_Buy = 5000 ;
extern int        TrailingStop_Buy = 5000 ;
extern int        TakeProfit_Sell = 10 ;
extern int        StopLoss_Sell = 5000 ;
extern int        TrailingStop_Sell = 5000 ;
extern double      Lots = 0.01 ;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (Volume[ 0 ] > 1000 ) return ( 0 );
// Объявляем переменные
int total, cnt;

  total= OrdersTotal ();

   // Проверка средств
   if ( AccountFreeMargin ()<( 1000 *Lots))
     {
       Print ( "We have no money. Free Margin = " , AccountFreeMargin ());   
       return ( 0 );  
     }
   if (total< 1000 )
    {  
     // Открытие сделкок
       OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 ,Bid-StopLoss_Buy* Point ,Ask+TakeProfit_Buy* Point , "Покупаем" , 16384 , 0 , Green );
       Sleep ( 10 ); //10 секунд
       RefreshRates ();
       OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 ,Ask+StopLoss_Sell* Point ,Bid-TakeProfit_Sell* Point , "Продаем" , 16385 , 0 , Red );
    }
   if (total== 1000 )
    {
       OrderSelect ( 0 , SELECT_BY_POS, MODE_TRADES);
       if ( OrderType ()==OP_BUY)
         {
           OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 ,Bid-StopLoss_Buy* Point ,Ask+TakeProfit_Buy* Point , "Покупаем" , 16384 , 0 , Green );
         }
       if ( OrderType ()==OP_SELL)
         {
           OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 ,Ask+StopLoss_Sell* Point ,Bid-TakeProfit_Sell* Point , "Продаем" , 16385 , 0 , Red );
         }
    }   
   for (cnt=total- 1 ;cnt>= 0 ;cnt--)
     {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
       if ( OrderType ()==OP_BUY)
         {
           if (TrailingStop_Buy> 0 )  
             {                 
               if (Bid- OrderOpenPrice ()> Point *TrailingStop_Buy) // Bid - цена покупки
                 {
                   if ( OrderStopLoss ()<Bid- Point *TrailingStop_Buy)
                     {
                       OrderModify ( OrderTicket (), OrderOpenPrice (),Bid- Point *TrailingStop_Buy, OrderTakeProfit (), 0 , Green );
                       return ( 0 );
                     }
                 }
             }
         }
       if ( OrderType ()==OP_SELL)
         {
           if (TrailingStop_Sell> 0 )  
             {                 
               if (( OrderOpenPrice ()-Ask)>( Point *TrailingStop_Sell))   // Ask - цена продажи
                 {
                   if (( OrderStopLoss ()>(Ask+ Point *TrailingStop_Sell)) || ( OrderStopLoss ()== 0 ))
                     {
                       OrderModify ( OrderTicket (), OrderOpenPrice (),Ask+ Point *TrailingStop_Sell, OrderTakeProfit (), 0 , Red );
                       return ( 0 );
                     }
                 }
             }
         }
  
     }
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
Bir danışmanım var, basit bir tane, aptalca belirli bir miktara kadar alım satım alım satımları açar ve SL ve TP'yi ayarlar (benim için önemli olan alım satım sayısıdır ). Dört ondalık basamakta iyi çalışıyor, ancak test cihazında çalışmasına rağmen beş ondalık basamakta çalışmak istemiyor. Söyle bana burada ne yapılabilir?
 
DOCTORS :
Şimdiki zaman nasıl öğrenilir?
ZamanAkımı()
 
utyff :
Bir danışmanım var, basit bir tane, aptalca belirli bir miktara kadar alım satım alım satımları açar ve SL ve TP'yi ayarlar (benim için önemli olan alım satım sayısıdır). Dört ondalık basamakta iyi çalışıyor, ancak test cihazında çalışmasına rağmen beş ondalık basamakta çalışmak istemiyor. Söyle bana burada ne yapılabilir?

Kaymayı artırın ve fiyatları normalleştirin
 
awega :
Merhaba. Söyleyin bana, danışman piyasa fiyatından pozisyon açmalı, bir emrin açılıp açılmadığını ve açılış fiyatını nasıl belirleyebilirim?
Yardımı MetaEditor'da açın, " Ticaret fonksiyonları ": OrderSend() ve OrderOpenPrice() - sorularınıza hazır cevaplar var.
 
utyff :
Bir danışmanım var, basit bir tane, aptalca belirli bir miktara kadar alım satım alım satımları açar ve SL ve TP'yi ayarlar (benim için önemli olan alım satım sayısıdır). Dört ondalık basamakta iyi çalışıyor, ancak test cihazında çalışmasına rağmen beş ondalık basamakta çalışmak istemiyor. Söyle bana burada ne yapılabilir?
Her şeyden önce, günlüğe bakın: danışman orada hata mesajları bırakır. Ve sonra, aynı hatalara göre, neyin ve neden olduğunu bulun. Ayrıca, başkalarının da sizin için aynısını yapacağını umarak, kendi başınıza analiz etmeyi öğrenmeniz ve burada kod ayaklarını atmamanız arzu edilir.