MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 719

 
Artyom Trishkin :

OrderModify() 'dan önce açılış fiyatını ve yeni stop fiyatını yazdırın.

Ve saygısızca "değil mi?" yardım istiyorsan kendine sakla. Ancak, tam bu başlıkta herhangi bir trol için tamamen çalışan bir şablon yayınladım - arayabilirsiniz.

saygısız "hayır?" Üzgünüm, buna hiçbir şey koymadım.

 
         if ((fMarketOrderss( OP_SELL )>= 1 )) { 
       if ( (( Bid -Opens)/ma+Times/ 1440 ) > SELL ) {
if ( OrderSend ( Symbol (), OP_SELL , 0.01 , Bid , 3 , 0 , 0 , NULL , 321 , 0 , 1 )> 0 ){} }}

Söylemek! SATIŞ yeri için sırayla giden numaraların olması için hangi fonksiyon eklenmelidir. Açık bir anlaşma varsa, o zaman ayarlanır. Bu anlaşmanın nasıl açılacağı 2'ye ayarlanır vb. Herhangi bir işlem yoksa, bu rakam sıfırlanır.

 
Artyom Trishkin :

OrderModify() 'dan önce açılış fiyatını ve yeni stop fiyatını yazdırın.

Aynı değerleri yazar. O zaman != kontrolü neden geçer, bana söyleyebilir misin?

 
Andrey Sokolov :

Aynı değerleri yazar. O zaman != kontrolü neden geçer, bana söyleyebilir misin?

Gerçek sayıları karşılaştırma hakkında bilgi edinin.

 
Artyom Trishkin :

Gerçek sayıları karşılaştırma hakkında bilgi edinin.

okumaya gittim. teşekkürler
 
Andrey Sokolov :
okumaya gittim. teşekkürler

Sadece karşılaştırmayın, aynı zamanda "hareket zamanı gelmedi mi?", yani gerekenden daha az değil "n>=p" olup olmadığını kontrol edin.

 
Vitaly Muzichenko :

Sadece karşılaştırmayın, aynı zamanda "hareket zamanı gelmedi mi?", yani gerekenden daha az değil "n>=p" olup olmadığını kontrol edin.

teşekkürler
 
Merhaba, renk seviyeleri göstergesi var, bu göstergeden 2 adet tek tablo atmaya çalıştığınızda sorun çıkıyor yani 1. gösterge penceresi kayboluyor, sadece 2. gösterge penceresi çıkıyor ve tıkladığınızda bir nesnenin oluşturulması - bir dikdörtgen, biri bir göstergeden ve ikincisi diğerinden olmak üzere 2 nesne oluşturulur. Söyleyin bana, bu göstergenin birkaç parçasının grafikte kullanılabilmesi ve nesnelerin doğru şekilde oluşturulabilmesi için bunu nasıl düzeltebilirim? Belki koddaki bir şeyi değiştirin veya tam tersine bir şey ekleyin? Misal
Dosyalar:
 

Elimden geldiğince birleştirilmiş gösterge
Endeksler +/- %0,4 bölgesindeyken çubukları, örneğin bir dikdörtgenle vurgulamaya yardımcı olmak gerekir.
Veya en azından kodun kendisi
Gösterge kodum

 //+------------------------------------------------------------------+
//|                           Copyright © 2018, forex-time@mail.ru   |
//|                        Copyright © 2018, mr.aliaksei@yandex.ru   |
//|                                         % Алексея Королькова.mq4 |
//+------------------------------------------------------------------+
#property copyright    "Copyright © 2018, forex-time@mail.ru"
#property copyright    "Copyright © 2018, mr.aliaksei@yandex.ru"
#property link          "http://axe44.opentraders.ru/bio/"
#property version      "1.10"
#property strict 
//+------------------------------------------------------------------+
//--- indicator settings
#property   indicator_separate_window
#property   indicator_buffers 3
#property   indicator_color1   LimeGreen
#property   indicator_color2   Red
#property   indicator_color3   Blue
#property   indicator_width1    2
#property   indicator_width2    2
#property   indicator_width3    2
#property   indicator_level1    0.0
#property   indicator_levelcolor DarkGray
//--- indicator parameters
input int InpFastEMA= 14 ;   // Fast EMA Period
input int Metod     = 1 ;   // Metod EMA Period 0-3
input string Pereferics= "" ; // Переферикс после названия основной пары. Например EURUSD.m где переферикс .m
//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
//--- right input parameters flag
bool    ExtParameters= false ;
string IndName= "% A.K (" + IntegerToString (InpFastEMA)+ ")" ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ( void )
  {
   IndicatorDigits ( Digits + 1 );
//--- drawing settings
   SetIndexBuffer ( 0 ,Buffer1); SetIndexStyle ( 0 , DRAW_LINE );
   SetIndexBuffer ( 1 ,Buffer2); SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexBuffer ( 2 ,Buffer3); SetIndexStyle ( 2 , DRAW_LINE );

//--- name for DataWindow and indicator subwindow label
   IndicatorShortName (IndName);
//--- check for input parameters
   if (InpFastEMA<= 1   )
     {
       Print ( "Wrong input parameters" );
      ExtParameters= false ;
       return ( INIT_FAILED );
     }
   else
      ExtParameters= true ;
//--- initialization done
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime & time[],
                 const double & open[],
                 const double & high[],
                 const double & low[],
                 const double & close[],
                 const long & tick_volume[],
                 const long & volume[],
                 const int & spread[])
  {
     int i = rates_total-prev_calculated- 1 ;

     while (i >= 0 )  
      {
       double eurusd=((( iMA ( "EURUSD" +Pereferics, 0 ,InpFastEMA, 0 ,Metod, 0 ,i)+ 1 )/( iMA ( "EURUSD" +Pereferics, 0 ,InpFastEMA, 0 ,Metod, 1 ,i)+ 1 ))- 1 )* 10000 ;
       double eurjpy=((( iMA ( "EURJPY" +Pereferics, 0 ,InpFastEMA, 0 ,Metod, 0 ,i)+ 1 )/( iMA ( "EURJPY" +Pereferics, 0 ,InpFastEMA, 0 ,Metod, 1 ,i)+ 1 ))- 1 )* 10000 ;
       double usdjpy=((( iMA ( "USDJPY" +Pereferics, 0 ,InpFastEMA, 0 ,Metod, 0 ,i)+ 1 )/( iMA ( "USDJPY" +Pereferics, 0 ,InpFastEMA, 0 ,Metod, 1 ,i)+ 1 ))- 1 )* 10000 ;
       double eur=(eurusd+eurjpy)/ 2 ;
       double usd=(-eurusd+usdjpy)/ 2 ;
       double jpy=-(usdjpy+eurjpy)/ 2 ;
      Buffer1[i]=ND(eur, 1 );
      Buffer2[i]=ND(usd, 1 );
      Buffer3[i]=ND(jpy, 1 );

      Pair(IndName+ "EUR" , "EUR" , 54 , indicator_color1 );
      Pair(IndName+ "USD" , "USD" , 28 , indicator_color2 );
      Pair(IndName+ "JPY" , "JPY" , 5 ,Blue);
                  
      i--;}
return (rates_total);}
//+------------------------------------------------------------------+
//|ND - нормализация числа                                           |
//-------------------------------------------------------------------+
double ND( double value, int digits) {  
       return ( NormalizeDouble (value, digits));}  
//+------------------------------------------------------------------+
void Pair( string name, string txt, int shift, color col){
       int window= WindowFind (IndName);
       //если окно не найдено - "текстовые метки" будут созданы в окне графика
       if (window< 0 ) window= 0 ;
       ObjectCreate (name, OBJ_LABEL ,window, 0 , 0 , 0 , 0 , 0 , 0 );
           ObjectSet (name, OBJPROP_CORNER , 0 );
           ObjectSet (name, OBJPROP_XDISTANCE ,shift);
           ObjectSet (name, OBJPROP_YDISTANCE , 2 );
           ObjectSet (name, OBJPROP_CORNER , CORNER_RIGHT_UPPER );
       ObjectSetText (name,txt, 8 , "Arial" ,col);}
//+------------------------------------------------------------------+

Kod önerildi, ancak nasıl ekleyeceğimi bilmiyorum:

 ObjectCreate (VLINE, OBJ_VLINE , 0 , 0 , 0 );
ObjectSet (VLINE, OBJPROP_COLOR , VLINE_COLOR);
ObjectSet (VLINE, OBJPROP_STYLE , VLINE_STYLE);

ObjectDelete (VLINE);

if (Bf< 0.4 && Bf>(- 0.4 ))
ObjectSet (VLINE, VLINE, VLINE);

Şimdiden teşekkürler.

 
bunun yerine mümkün mü
Yüksek/Düşük>1.02 yapmak
Yüksek>Düşük*1.02
Gösterge için hangi seçenek daha iyidir