Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1476

 
Artyom Trishkin #:

Bölücüyü sıfır için kontrol etmeden birçok bölme. Patlayıcı.

İpucu için teşekkürler, Artyom! Kontrolü kesinlikle ekleyeceğim.

Saygılarımla, Vladimir.

 
Artyom Trishkin #:

Patlayıcı.

Yeterince adil.

 
Aleksandr Slavskii #:

fxsaber eğer okuyorsanız, lütfen cevap verin.

PositionID tst dosyasında saklanır. Belki tst->Virtual dönüştürmek mantıklıdır, o zaman MT4 tarzında tst ile çalışabilirsiniz. İşte böyle bir dönüşüm örneği.

Ayrıca nesnelerden geriye dönük test geçmişini de çıkarabilirsiniz. Kütüphanenin orada anlaşılması daha kolaydır.

ZЫ Bu konuya abone değilim, bu yüzden göremeyebilirim.

TesterReport - альтернативный отчет тестера стратегий Metatrader 5
TesterReport - альтернативный отчет тестера стратегий Metatrader 5
  • 2021.10.06
  • www.mql5.com
Торговые отчеты MetaTrader 5 довольно тяжелы для восприятия. По этой причине с определенного момента разработчики добавили в Терминал более понятный режим просмотра закрытых позиций. Однако, это не
 
Alexey Viktorov #:

Kene başına maliyeti göz önünde bulundurduğunuzdan emin olun.

Herkese günaydın ve iyi günler!

Kod yazmak için zamanım yok. Forum üyelerinden gelen ipuçlarını dikkate alarak, ki bunlar için büyük bir TEŞEKKÜR EDERİZ, betiğin bu sürümünü elde ettik:

//+------------------------------------------------------------------+
//|                            Lot_Size_Depending_On_Risk_And_SL.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
input uint Risk=6;         // Размер риска (> 0, но не более 100 %)
input uint Stop_Loss=1000; // Размер стоп-лосса (> 0, но не более 4294967295)
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot_Size_Depending_On_Risk_And_SL()
  {
//--- блок проверки входных параметров на корректность
   if(Risk==0 || Risk>100 || Stop_Loss==0)
     {
      Print("<===== Введены не корректные размеры риска и/или стоп-лосса! =====>");
      return(0.0);
     }
//--- блок определения размера лота
   double trading_account_currency=SymbolInfoDouble(_Symbol,SYMBOL_POINT)*
                                   SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)/
                                   SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);
   double lot=(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*Risk*0.01)/(Stop_Loss*trading_account_currency);
//--- блок проверки размера лота на минимум и максимум от возможного
   double min_volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
   if(lot<min_volume)
      lot=min_volume;
   if(lot>max_volume)
      lot=max_volume;
//--- блок расчёта минимального шага изменения объёма необходимого для заключения сделки
   double step_volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
   int ratio=(int)MathRound(lot/step_volume);
   if(MathAbs(ratio*step_volume-lot)>0.0000001)
      lot=ratio*step_volume;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print(DoubleToString(Lot_Size_Depending_On_Risk_And_SL(),2));
  }
//+------------------------------------------------------------------+

Saygılarımla, Vladimir.

 

İyi günler!

Robotumu yalnızca bir bilgisayarda çalışabilecek şekilde nasıl geliştirebileceğimi önerebilir misiniz?

(kopyalanmaya karşı korumak için)

Saygılarımla, Alexander

Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
ArraySetAsSeries - Операции с массивами - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
klycko #:

İyi günler!

Lütfen robotumu yalnızca bir bilgisayarda çalışabilecek şekilde nasıl geliştirebileceğimi önerebilir misiniz?

(kopyalanmasını önlemek için)

Saygılarımla, Alexander

void OnInit()
  {
   if(AccountInfoInteger(ACCOUNT_LOGIN) != Номер счёта)
      return INIT_FAILED;
   return INIT_SUCCEEDED;
  }

En basit varyant.

OnInit işlevine iki satır kod ekleyin.

Hesap numarası yerine, Uzman Danışmanı verdiğiniz kişinin hesabını belirtin, derleyin ve yalnızca ex5 dosyasını verin.

 
Aleksandr Slavskii #:

En kolay seçenek.

OnInit işlevine iki satır kod ekleyin.

Hesap numarası yerine, Uzman Danışmanı verdiğiniz kişinin hesabını belirtin, yalnızca ex5 dosyasını derleyin ve verin.

Çok teşekkür ederim!

 
Aleksandr Slavskii #:

En kolay seçenek.

OnInit işlevine iki satır kod ekleyin.

Hesap numarası yerine, Uzman Danışmanı verdiğiniz kişinin hesabını belirtin, yalnızca ex5 dosyasını derleyin ve verin.

istemci terminali açar ve Uzman Danışman çöker :-))

çünkü ACCOUNT_LOGIN=0 olduğu durumlar vardır

 
Maxim Kuznetsov #:

istemci terminali açar ve Uzman Danışman çöker :-)

çünkü ACCOUNT_LOGIN=0 olduğu durumlar vardır

Güvenilir ve yüksek kaliteye ihtiyacınız varsa, freelance çalışmak içindir.

 

Garip. Terminalde "Ayarlar -> Grafikler" bölümünde maksimum 5000 çubuk ayarladım. Terminali yeniden yükledim, sembolün bulunduğu sekmenin üzerine gelindiğinde 5000 çubuğu gösteriyor.

Ama bu kod:

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[])
{

  Print("rates_total=", rates_total);
  return rates_total;
}


6201 çubuk hakkında bilgi görüntüler.

Bu doğru mu? Ayrıca rates_total 'da 5000 olmasını bekliyordum.

Neden: