エラー、バグ、質問 - ページ 6

 
Prival:

とヘルプに書いてあります。

intday_of_year;// 年内の数字(2月1日は32日 目)。

なぜかいつも31と表示される((

添付のスクリプト

ファイル内の

2010.02.01 00:00:00 143.832 143.839 143.758 143.771 186 2010 2 1 0 0 1 31

これは、ドキュメントの間違いです。1年の日数は0から始まります。ありがとうございます。
 
stringo:
これは、ドキュメントの間違いです。1年の日数は0から始まります。ありがとうございます。
複雑なのはわかるが、より身近に感じられる(素人には。 プログラマーには問題ないのだが)。1月1日は1年のうち1日です。参照元が正しいようです。
 
Prival:
より複雑なのは理解できますが、より身近に感じられます(素人には。 プログラマーにはOKです)。1月1日は、1年の最初の日です。ヘルプを見ると、正しいような気がします。
標準的なシステム時間構造をMqlTime構造に変換する。
 
なぜかサーバーから端末をダウンロードできない。"failed to download data from server "と表示されるのですが、何が問題なのでしょうか?
 

こんにちは、mt4からmt5の関数への翻訳を手伝ってくれませんか。翻訳してみたが、正しくない、もし難しいのであれば、正しいコードを送ってください、私はMQLが苦手なのです。まだ習い始めなんですけどね。

//+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#プロパティリンク"http://www.mql5.com"
#property version "1.00"
//--- 入力パラメータ

input double Lots=0.1;
input bool MM = true;
input double Risk = 10;


//+------------------------------------------------------------------+
//| エキスパート初期化機能|
//+------------------------------------------------------------------+
int OnInit()
{
return(0)です。
}
//+------------------------------------------------------------------+
//| 専門家による初期化機能|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

}

//+------------------------------------------------------------------+
//| エキスパートティック機能|
//+------------------------------------------------------------------+
void OnTick()
{
if( MM )double Lots = LotSon(); //call LotSon function
}
//+------------------------------------------------------------------+
double LotSon()
{
double LotMin = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double LotMax = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
double Lots = AccountInfo Double(ACCOUNT_FREEMARGIN)/100000.0 * Risk;
double Lots = MathMin(Lotmax,MathMax(Lotmin,Lots));

if (LotMin < 0.1)Lots = NormalizeDouble(Lots,2);
さもなくば
{
if (LotMin < 1.0)Lots = NormalizeDouble(Lots,1);
else Lots = NormalizeDouble(Lots,0);
}
if (Lots < LotMin) Lots = LotMin;
if (Lots > LotMax) Lots = LotMax;
}

Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 

カラーでコードを取得するには?

 
FEDOR_MQL:

コードの色はどうするのですか?

MQL5 Communityの 記事- ユーザーメモ

ボタンは、メッセージのテキストにMQLのソースコードを挿入 するためのものです。押すとすぐに空のウィンドウが表示されますので、そこにコードを挿入して、挿入 ボタンを押してください。 コードの挿入をキャンセルするには、キャンセル ボタンを押してください。

特定のチャンクを強調するために、コードを太字にすることは推奨されません。要は、OSやブラウザによって等幅フォントの表示が異なるということです。例えば、Windows VistaではConsolas等幅フォントを採用しており、サイズ10の太字は通常のフォントとほとんど見分けがつかない。

 
FEDOR_MQL:

こんにちは、mt4からmt5の関数への翻訳を手伝ってくれませんか。翻訳してみたが、正しくない、もし難しいのであれば、正しいコードを送ってください、私はMQLが苦手なのです。まだ習い始めなんですけどね。


 //+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//--- input parameters

input double   Lots=0.1;
input bool     MM = true;
input double   Risk = 10;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if( MM ) Lots = LotSon();      //вызов функции LotSon 
  }
//+------------------------------------------------------------------+
double LotSon()
{
  double LotMin     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
  double LotMax     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
  double LotStep    = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
  double Lot        = AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000.0 * Risk;
  Lot               = MathMin(Lotmax,MathMax(Lotmin,Lot));
  
  if (Lot < LotMin) Lot = LotMin;
  if (Lot > LotMax) Lot = LotMax;
  // Вариант первый
  switch(LotStep)
  {
   case 0.01: return(NormalizeDouble(Lot,2));
   case 0.1 : return(NormalizeDouble(Lot,1));
   case 1.0 : return(NormalizeDouble(Lot,0));
  }
  // Вариант второй
  // if (LotStep == 0.01)return(NormalizeDouble(Lot,2));
  // if (LotStep == 0.1) return(NormalizeDouble(Lot,1));
  // if (LotStep == 1.0) return(NormalizeDouble(Lot,0));
  // Вариант третий
  // if (LotStep == 0.01)return(NormalizeDouble(Lot,2));
  // else if (LotStep == 0.1) return(NormalizeDouble(Lot,1));
  // else if (LotStep == 1.0) return(NormalizeDouble(Lot,0));
  
}
 

よし、やってみよう。皆さん、ありがとうございました。私はこんな質問をしていいのだろうか?それとも別の場所に行く必要があるのでしょうか?回答ありがとうございました。

 

また、現段階では、パラメータ、関数呼び出し、関数自体がコンパイル時エラーを表示するかしないかです。もしそうなら、その理由は?というエラーが表示されます。

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5