MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 158

 
-Aleks-:

こんなデザインもあります

static datetime TimeN=0;  


void OnTick()
  {

datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;


ありがとうございます!!!
 
専門家が誰も書き込みを読まないのに、なぜトピックを作らなければならないのか、教えてください。このスレにいる専門家たちは誰のことも考えていないのに、なぜ私は助けを求めたのでしょう。
 
vannoo:
専門家が誰もメッセージを読みたがらないのに、なぜ私がトピックを作成しなければならないのか、教えてください。なんで相談したんだろう。 このスレのみんながみんなを大切にしてるなら。

こんなこと書いてましたね。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

MQL4に関する初心者向けの質問、アルゴリズムやコードに関するヘルプとディスカッション

バヌー さん 2017.03.17 15:57

皆さん、私が何を間違えたのか、ここでアドバイスしていただけませんか? そうではありません。私は3週間ほど、自分でMQL4 EAを書くために勉強していますコンパイル済みのEAを書きましたが、エラーも警告もなく、すべて問題ないようです。私は、大きなBUTを見つけたが、それは動作するようにしたくない。どこで何を間違えたのか、ここで聞けばいいのかもしれない。誰か教えてくれたら、教えてください。初めてで恐縮ですが、どのようにしたらいいのでしょうか。なるほどと思いつつも。
さて、ここで彼らは答えを出して くれる。
 
こんにちは!ヘルプ...私のMT4は死んでいる...私はすべて(再起動、システムの復元、すべてのガッツと古いものを削除し、新しいものをダウンロードして)、何も助けようとしませんでした。 それは死んでいる...あなたがそれを開く場合、あなたはタスクマネージャを介してそれを行う必要があり、それを閉じます。
 

ハロー

プログラミングは初めてですが、勉強しようと思っています)

インジケーターの読み通りに注文を終了させるのに少し問題があります。

インジケーターの読みに従ってポジションを建て、インジケーターの読みに従ってポジションを閉じるが、ストップも利益もない反対方向である。

if(r > 50 && p > m)//買い注文を 開始するための条件

{

ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //買いの注文を出す。

}

注文の終了条件は正しく書けていますか?

if(r < 50 && p < m) --- これは売りの条件であり、クローズの条件である。

{

OrderClose(ticketB,0.1,Bid,5,Red)。

}

初期化されていない変数 'ticketB' の使用と 'OrderClose' の戻り値の可能性をチェック する必要があることを表示する。

皆さん、どこをどう書き間違えたか教えてください。

 

日付のサイクルを作成する方法を教えてください - 年と四半期の範囲を検索する必要があります。

例えば、2010年1月1日から2010年12月31日までの最初の範囲、2011年1月1日から2011年12月31日までの2番目の範囲 - どのようにサイクルでそれを整理するのですか?

 

先ほどの説明では分かりにくかったかもしれませんが、何とかして食い止めたいデザインの一例です...。


   for(int Ti=0; Ti<18; Ti++)
     {
      if(Ti==0)  {start_time=D'01.01.2000'; stop_time=D'31.12.2000';}
      if(Ti==1)  {start_time=D'01.01.2001'; stop_time=D'31.12.2001';}
      if(Ti==2)  {start_time=D'01.01.2002'; stop_time=D'31.12.2002';}
      if(Ti==3)  {start_time=D'01.01.2003'; stop_time=D'31.12.2003';}
      if(Ti==4)  {start_time=D'01.01.2004'; stop_time=D'31.12.2004';}
      if(Ti==5)  {start_time=D'01.01.2005'; stop_time=D'31.12.2005';}
      if(Ti==6)  {start_time=D'01.01.2006'; stop_time=D'31.12.2006';}
      if(Ti==7)  {start_time=D'01.01.2007'; stop_time=D'31.12.2007';}
      if(Ti==8)  {start_time=D'01.01.2008'; stop_time=D'31.12.2008';}
      if(Ti==9)  {start_time=D'01.01.2009'; stop_time=D'31.12.2009';}
      if(Ti==10) {start_time=D'01.01.2010'; stop_time=D'31.12.2010';}
      if(Ti==11) {start_time=D'01.01.2011'; stop_time=D'31.12.2011';}
      if(Ti==12) {start_time=D'01.01.2012'; stop_time=D'31.12.2012';}
      if(Ti==13) {start_time=D'01.01.2013'; stop_time=D'31.12.2013';}
      if(Ti==14) {start_time=D'01.01.2014'; stop_time=D'31.12.2014';}
      if(Ti==15) {start_time=D'01.01.2015'; stop_time=D'31.12.2015';}
      if(Ti==16) {start_time=D'01.01.2016'; stop_time=D'31.12.2016';}
      if(Ti==17) {start_time=D'01.01.2017'; stop_time=D'31.12.2017';}
    }
 

行の中のフルストップをコンマに変更したいのですが、うまくいきません。


string str_avrMassSell=DoubleToString(avrMassSell,2);
str_avrMassSell=StringReplace(str_avrMassSell,".",",");
 
-Aleks-:

先ほどの説明では分かりにくかったかもしれませんが、私が何とかして食い止めたいと思っている施工例です...。



年別であれば、以下のような感じでしょうか。

//+------------------------------------------------------------------+
//|                                                    Year_Test.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
 input int      Ti=18;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime start_time=D'01.01.2000';
   datetime stop_time=D'31.12.2000';

   for (int ti=1;ti<Ti;ti++)
   {   
   
   start_time=start_time+31536000;
   if (TimeDay(start_time)==31) start_time+=86400;


   stop_time=stop_time+31536000;

   if (TimeDay(stop_time)==30) stop_time+=86400;

   Print("ti = ", ti, " Start = ", TimeToStr(start_time,TIME_DATE)," Stop = ",TimeToStr(stop_time,TIME_DATE));
   }
   
  }

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 17 Start = 2017.01.01 Stop = 2017.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 16 Start = 2016.01.01 Stop = 2016.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 15 Start = 2015.01.01 Stop = 2015.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 14 Start = 2014.01.01 Stop = 2014.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 13 Start = 2013.01.01 Stop = 2013.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 12 Start = 2012.01.01 Stop = 2012.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 11 Start = 2011.01.01 Stop = 2011.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 10 Start = 2010.01.01 Stop = 2010.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 9 Start = 2009.01.01 Stop = 2009.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 8 Start = 2008.01.01 Stop = 2008.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 7 Start = 2007.01.01 Stop = 2007.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 6 Start = 2006.01.01 Stop = 2006.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 5 Start = 2005.01.01 Stop = 2005.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 4 Start = 2004.01.01 Stop = 2004.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 3 Start = 2003.01.01 Stop = 2003.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 2 Start = 2002.01.01 Stop = 2002.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 1 Start = 2001.01.01 Stop = 2001.12.31


 
-Aleks-:

行の中のフルストップをコンマに変更したいのですが、うまくいきません。



効果あり

//+------------------------------------------------------------------+
//|                                                StringReplace.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input double   Temp=999.99;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string stemp1=DoubleToStr(Temp,2);
   string stemp2=stemp1;
   StringReplace(stemp2,".",",");
   Print(stemp1," = ", stemp2);
   
  }
//+------------------------------------------------------------------+

2017.03.20 21:39:02.802 StringReplace EURUSD,M15: 999.99 = 999.99です。