Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 61

 
Renat Akhtyamov :
Umarım OnInit () içinde Yüzde değişkenine bir değer atanır?
Yüzde değişkeni kullanıcı tarafından belirlenir. OnInit() dışarı attım.
 
Michail_David :
Yüzde değişkeni kullanıcı tarafından belirlenir. OnInit() dışarı attım.
Lot=0 ise, test cihazı hiçbir şey açmaz
 
Renat Akhtyamov :
Lot=0 ise, test cihazı hiçbir şey açmaz
Lotlarım Yüzde'ye göre hesaplanır. Test cihazı lot sayısını hesaplar, ancak anlaşma yoktur.

 Margin_Percent=AccountFreeMargin()*Percent/100; 

Lots=Margin_Percent/ MarketInfo ( Symbol (), MODE_MARGINREQUIRED );

      Lots_Volume=( MathFloor (Lots)+ MarketInfo ( Symbol (), MODE_LOTSTEP ));

if (Lots>Lots_Volume)
        {
         Lots=Lots_Volume;
        }
       else if (Lots<Lots_Volume)
         Lots= MathFloor (Lots);
       Print ( "Количество лотов : " ,Lots);
       return ;
 
Michail_David :
Lotlarım Yüzde'ye göre hesaplanır. Test cihazı lot sayısını hesaplar, ancak anlaşma yoktur.

Yine de, kodda Yüzde ayarı nerede

ve günlükte komutun gösterdiği şey: Print ( "Lot of Number: " ,Lots); ?

 
Renat Akhtyamov :

Yine de, kodda Yüzde ayarı nerede

ve günlükte komutun gösterdiği şey: Print ( "Lot of Number: " ,Lots); ?

#property link        ""
#property version    "1.00"
#property strict
//--- input parameters
input int       Percent= 50 ;
input int       Fast_EMA_Period= 12 ;
input int       Slow_EMA_Period= 25 ;
input int       Signal_Period= 9 ;
input double    Step_PSAR= 0.02 ;
input double    Maximum_PSAR= 0.2 ;
input int       MAGICNUMBER= 413 ;
static datetime New_Time; // Время текущего бара
double Margin_Percent;   //Используемые средства для открытия ордеров
double Lots; //Определение общего количества лотов
double Lots_Volume;
double MacdCurrent; //Параметры MACD основной линии текущего бара
double MacdPrevious1; //Параметры MACD основной линии предыдущего бара
double MacdPrevious2; //Параметры MACD основной линии со смещением на 2 бара
double StopLoss; //Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара
double Previous_StopLoss; //Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
double CurrentPSAR; //Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {

   bool New_Bar= false ;                     // Флаг нового бара
   int ticket,total,cnt;
//---------------------------------------------------------------------------
   New_Time= TimeCurrent ();
   if ( Time [ 0 ]==New_Time) // Сравниваем время
      New_Bar= true ;       // Поймался новый бар
   else if (New_Bar== false ) // Если бар не новый..
Beşinci satırda Yüzde ayarlanır. Günlük çıktısı: "Lot sayısı 90.0100000001". Belki de NormalizeDouble() eklemelisiniz?
 
Michail_David :
Beşinci satırda Yüzde ayarlanır. Günlük çıktısı: "Lot sayısı 90.0100000001". Belki NormalizeDouble() eklemelisiniz?

Çok tamam.

Sıra açma mantığında bir hata arayın.

Bu gibi durumlarda, genellikle siparişin açılacağı açık bir koşul belirlerim.

 
Renat Akhtyamov :

Çok tamam.

Sipariş açma mantığında hata arayın.

Bu gibi durumlarda, genellikle siparişin açılacağı açık bir koşul belirlerim.

Lütfen açık bir koşulla bir örnek verin. Eğer doğru anladıysam, döngüde açılması için bir koşul olmalı. Doğru şekilde?
 
Michail_David :
Lütfen açık bir koşulla bir örnek verin. Eğer doğru anladıysam, döngüde açılması için bir koşul olmalı. Doğru şekilde?
Parti hesabından hemen sonra kodun başında sipariş açma komutunu verin ve test cihazının düzgün çalıştığından emin olun. Sonra her şeyi geri verebilirsiniz.
 
Renat Akhtyamov :
Parti hesabından hemen sonra kodun başında sipariş açma komutunu verin ve test cihazının düzgün çalıştığından emin olun. Sonra her şeyi geri verebilirsiniz.
Teşekkür ederim. Bir hata bulundu. Lotları hesapladıktan sonra geri döndüm; durmak. Onun yüzünden kuralar açılmadı
 
Michail_David :
Beşinci satırda Yüzde ayarlanır. Günlük çıktısı: "Lot sayısı 90.0100000001". Belki NormalizeDouble() eklemelisiniz?
Mutlaka. Ve sadece partiler değil, aynı zamanda sunucuya iletilen diğer değerler. Hesaptaki minimum ve maksimum izin verilen değerlerin yanı sıra değişiklik adımı için lotların kontrol edilmesi de yararlıdır, lotun 0.03'lük artışlarla değiştirilebileceği durumlar vardı, bu da 90.01'in çalışmadığı anlamına gelir, en azından normalleş.