[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 410

 
Integer:


ファンタジーのレベルの高さに感心しました。マーケットレビューで、一部のキャラクター(未開封)のみデータが公開され、すべてのキャラクターが公開されないのはなぜですか?RefreshRates()関数は、あるシンボルは更新され、あるシンボルは更新されないということをどのようにして知ったのでしょうか?

純子さん、絶賛するのはやめてください。


ドミトリー、喧嘩はやめよう。最近、ヴァディムと意見が合わないことが多いから、お互いに助け合ったほうがいいんだ。数日間、思考が退屈で、スレッドに足を運ばず、いつものように、全てに目を通しました。正直、読んでいて面白かったです!本当に面白かったです。そんな小競り合いや、議論や会議があって、不思議に思っているだけなのですが......。)時折、難解なフレーズや単語が登場するが、実は全くのナンセンスである。私は誰も判断しませんが、私は高度な思考から遠く離れて、自分自身はまだ(泳ぐためにいくつかの場所で)学ぶことを学ぶために、その後理解し、明確に議論が完全な不条理に達していることを参照してください。

プロが集まっているようですが、そうでなければ言いません。みなさんが理解してくれているのがわかるので、それ以外のことは言えません。しかし、面白いのは、プロは自分の間違いを認めたくないときに、このようなオーバーリアクションになることがあるということです。しかし、私たちは失敗から学ぶのです 恥じることは何もない。ですから、誰かが間違えたとしても、話を逸らす必要はなく、むしろ告白すればいいのです。何十ページもあるプログラマーのゴミが人格に変わるためには、どうにもこうにも仕方がないのだ。少なくともこの支部やフォーラムの目的は、頭から足まで糞をし合うことではなく、プログラミングが上達し、その考えを共有することです。だから、一緒に暮らそう。言い争うのはもういい。

 
hoz:

まあ、その通りなんですけどね。自分で書くのが億劫な人は、関数を一行ずつ「読んで」仕組みを理解すれば、すべてがうまくいく...。

関数のパラメータがありますね。

は、最終日のバーの開始時刻です。つまり、現在の日のバーが開かれる前に決済されたすべてのポジションが計算され、合計されます!意味があるのでしょうか?だから、要求されるとか、そういう別のハードルを設定する。でも、自分の目で確かめなければなりません。


申し訳ありませんが、まだ動作していません。

この関数では、今日の利益ではなく、今日の合計利益を返したいのです。

と、どうあがいてもうまくいかない。 結果は、まさに全貌が見えてきた。

WHOLE履歴から今日のBEFOREを引くと、今日の合計が出ます。

double tm1=GetProfitFromDateInCurrency (Symbol(), -1, -1, iTime (NULL, PERIOD_D1, 0));  
double tm2=GetProfitFromDateInCurrency (Symbol(), -1, -1, TimeCurrent());  

Print(  m2-m1 );

はnilを表示します ....

 
愚か者が賢い人間に愚か者であることを証明するのは、その逆よりも常に容易であり、賢い人間にとって疑うことは本質的に容易なことだからである。
 
lottamer:


理論的には、全体のストーリーから今日の前の出来事を差し引けば、今日の出来事が出てくる。

はZEROを刷るんだよ、頼むよ......。


この機能が何をするものなのかを理解することです。そして、それを理解するためには、一行一行、全体を分解する必要があるのです。これは、すでにお話ししたとおりです。すべて初歩的なことです。それに、単純な1つの関数のコードを理解するかしないかはあなた次第なので、助ける意味はありません。

上に記述しました。

 
hoz:


Vadim、私はメジャーと円とのクロスを除いて、どんな商品も開いたことがない端末であなたのスクリプトを実行しました。とにかく、スクリーンショットをご覧ください。

コメントから察するに市場データの配列が空っぽなので何も汲み取れない。

1.どのように走らせたのですか?まず、リフレッシュせずに実行する必要があります。すなわち、IsRefreshRates = falseです。データは更新されません。

2.そして、IsRefreshRates = trueで実行する必要があります。データは更新されます。

以下は、スクリーンショット1です。スクリーンショット2

バータイムにご注目ください。また、MarketInfo()がマーケット概要からデータを取得して いることがわかります。

こちらがExpert Advisorです。少し修正しました。少し修正しました。

extern string Tool           = "AUDNZD"; // Имя инструмента.
extern bool   IsRefreshRates = true;     // Флаг включения обновления таймсерий.
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start()
 {
  string sTool = Tool; // Имя инструмента.
  if (Tool == "") sTool = Symbol();
  while (!IsStopped())
   {
    if (IsRefreshRates) RefreshRates();
    string sComment = StringConcatenate("MarketInfo() (", sTool, ")\n",
                                        TimeToStr(MarketInfo(sTool, MODE_TIME), TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\n",
                                        DoubleToStr(MarketInfo(sTool, MODE_BID), Digits), "  ", DoubleToStr(MarketInfo(sTool, MODE_ASK), Digits),
                                        "\n\nПредопределенные переменные (", Symbol(), ")\n",
                                        TimeToStr(Time[0], TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\n",
                                        DoubleToStr(Bid, Digits), "  ", DoubleToStr(Ask, Digits),
                                        "\n\nМассивы-таймсерии (", sTool, ")\n");
    for (int i = 0; i < 10; i++)
     {
      sComment = sComment + StringConcatenate(TimeToStr(iTime(sTool, 0, i), TIME_DATE|TIME_MINUTES|TIME_SECONDS), "  ",
                                              DoubleToStr(iOpen(sTool, 0, i), Digits), "  ",
                                              DoubleToStr(iLow(sTool, 0, i), Digits), "  ",
                                              DoubleToStr(iHigh(sTool, 0, i), Digits), "  ",
                                              DoubleToStr(iClose(sTool, 0, i), Digits), "  ",
                                              DoubleToStr(iVolume(sTool, 0, i), 0), "\n");
     }
    Comment(sComment);
    Sleep(300);
   }
 } 
ホズ


ディミトリ、喧嘩はやめよう。最近、ヴァディムと意見が合わないことが多いから、お互いに助け合ったほうがいいんだ。2~3日かけて頭の中を整理し、支店には行かず、いつものように行って全部かき集めたことがあります。正直、読んでいて面白かったです!本当に面白かったです。そんな小競り合いや、議論や会議があって、不思議に思っているだけなのですが......。)時折、難解なフレーズや単語が登場するが、実は全くのナンセンスである。私は誰も判断しませんが、私は高度な思考から遠く離れて、自分自身はまだ(泳ぐためにいくつかの場所で)学ぶことを学ぶために、その後理解し、明確に議論が完全な不条理に達していることを参照してください。

プロフェッショナルが集まったと思います。それ以外は何も言いませんよ。皆さん、自分のやっていることを理解してくれているようですから。しかし、面白いのは、プロは自分の間違いを認めたくないときに、つい口を滑らせてしまうことがあることです。しかし、私たちは失敗から学ぶのです 恥じることは何もない。ですから、誰かが間違えたとしても、話を逸らす必要はなく、むしろ告白すればいいのです。何十ページもあるプログラマーのゴミが人格に変わるためには、どうにもこうにも仕方がないのだ。少なくともこの支部やフォーラムの目的は、頭から足まで糞をし合うことではなく、プログラミングが上達し、その考えを共有することです。だから、一緒に暮らそう。言い争うのはもういい。

ビクター、気を使うなよ。考えをまとめることができず、理路整然としたスピーチの組み立て方を知らない人がいます。彼らにとって最も説得力があるのは、冒涜的な言葉です。

また、そのような人は新しいものを受け入れることができません。Dmitriは、キューを整理せずにストリームで作業する方法をまだ理解していないようです。この行列が必要な例も挙げていない。

今、彼は再び議論しています。自分の立場を確認し、主張するのではなく

 
Zhunko:

ビクター、あなたは注意を払ってない。考えをまとめることができず、理路整然としたスピーチの組み立て方を知らない人がいます。彼らにとって、最も強力な論拠は冒涜である。

また、そのような人は新しいものを受け入れることができません。Dmitriは、キューを整理せずにストリームで作業する方法をまだ理解していないようです。この行列が必要な例も挙げていない。

今、彼は再び議論しています。自分の立場を確認し、主張するのではなく


純子さん、大げさですよ。ここに書かれていることはすべて、あなたにそのまま当てはまります。ストリームについて理解してない、データが更新された理由など理解してないのに専門家気取りとかクソワロタ。とか言って正義の味方気取り。
 
Integer:


想像力の高さには感心させられます。マーケットレビューで、データが一部のシンボル(開いていないもの)のみに表示され、すべてのシンボルに表示されないのはなぜですか?RefreshRates()関数は、あるシンボルは更新され、あるシンボルは更新されないということをどのようにして知ったのでしょうか?

純子さん、絶賛するのはやめてください。

RefreshRates() は、Expert Advisor が使用する値のみを更新します。そうやって見つけ出していくのです。Expert Advisorより。昔、Metakvotの誰かが書いていた。
 
hoz:


この機能が何をするものなのかを理解することです。そして、それを理解するためには、一行ずつ分解していく必要があるのです。それはもう話した通りです。すべて初歩的なことです。それに、簡単な関数1つのコードを理解するかしないかはあなた次第なので、手伝う意味はない。

上に記述しました。


私はそれを理解した。

一般に、この関数は利益の合計を返しますが、HISTORY タブで設定した期間のみです。そして、HISTORY タブで期間を変更すると、すぐに変更されます

必要ない。

指定したパラメータの周期を設定する必要があります。

機能そのものを変えたいのですが...。

double GetProfitFromDateInCurrency(string sy="", int op=-1, int mn=-1, datetime dt=iTime (NULL, PERIOD_D1, 0)   )
{
  double p=0;
  int    i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (dt<OrderCloseTime()) {
              p+=OrderProfit()+OrderCommission()+OrderSwap();
            }
          }
        }
      }
    }
  }
  return(p);
}

が、コンパイラが文句を言う。

'iTime' - 初期化が必要です。

何を加えればいいのでしょうか?

 
Zhunko:
RefreshRates() は、Expert Advisor が動作しているもののみを更新します。そうやって見つけ出していくのです。Expert Advisorより。昔、Metakvotの誰かが書いていたのですが、 。

プログラミング言語の関数に、ありもしない神秘的な機能や性質を与えないでください。

 
前のページの最後の方に、データを更新するものについて書きました。