エキスパートアドバイザー - 雑多な質問 - ページ 18

 

Marco vd Heijden:

もし本当に各ティックで待ちたいのであれば、各シンボルごとに別のEAを書き、OnTick()関数を 使用する必要があります。
しかし、私はマイクロコントローラのプログラミングも行っており、停電や割り込みが発生するまで延々とwhileループを繰り返します。
ある条件が真か偽かをチェックするには、最小のブール型データ型を使いますが、プロセッサはバックグラウンドで動作するすべてのプロセスとグラフィックスなどで、1秒間に何百万回、何十億回とそれを行っています。
これが問題になるのは、より大きなデータ型を含む重い計算をし始めたときです。

#注文の計算とアカウント 情報の更新 - 終了しました。

コメントありがとうございます。

EAの分離、ああ!私は本当に複数のEAをプレイするのは好きではありません。
ループを連続させたり、無駄にループさせることもあるかもしれません。

// I hope one of below them will work for me
EventSetMillisecondTimer( 750 );
EventSetTimer( 1 );

私のPCはそんなに弱くないと思うので、何とかして欲しいです。
売りの注文、買いの注文、利益の注文、すべてのポジションの計算が重いのか何なのか。それは重い、お願いします?

それでは、コメントをありがとうございました。
よろしくお願いします。

 

これは重い計算ではありませんし、すべてのポジションを処理するように設計されていることを思い出してください。

ここで、簡単にできることの一例を紹介します。


ここでは、すべてのシンボルのすべてのタイムフレームのボリュームと、利用可能なすべてのシンボルのスプレッドである最初の行を要求しています。

今は、すべてのシンボルについて、すべての変数で最小から最大までソートしなければならないので、これは大変な作業です。



また、これは複数のシンボルのRenko Matrixです。

レンガを積み重ねる垂直方向の要素は取り除かれ、40ピップのレンガを水平に並べるようになり、たった一つのチャートですべてのシンボルを互いに比較するのに適しています。

通常、26の別々のRenkoチャートがあり、それらをすべて比較するのは非常に難しいのですが、このタイプでは瞬時に行うことができます。

もちろん、26のシンボルの動きを追跡する必要があり、これも大変な作業ですが、高性能で高速なコンピュータではそうもいきませんので、ポイントをつかんでいただけると幸いです。

これはすべて高速で動作するタイマーで行われます。シンボルごとのティックでこれをコード化する方法は、私に言わせれば狂気の沙汰としか言いようがありません。

 

Marco vd Heijden:

これはすべて高速で動作するタイマーで行われます。私はシンボルごとのティックでそれをコード化する方法を知らないので、私に言わせれば狂気の沙汰です。

コメントありがとうございます。

私はただ、私がそれに行くなら、私はコーダーやプログラマーのようにそこに残すだろうことを確かに知っている、と言う必要があります。(なぜなら、もし誰かがそれをする必要があるなら、彼らはコーダーかプログラマーになることができるからです...。)
それは僕にとって長い時間がかかることだ。ただ、あきらめている...

私はそれが私から長い時間がかかると心配なので、私は、このサブトピックを閉じることができると思います。
時々、私はこのコード産業で自分自身を失う。
とにかくこれまで私はそのコード産業から多くのことを得ました。

あなたの最新のコメントの後、もし私がターミナルトレードパネルの シンボルのティックだけを得る必要があるならば、私は非常に異なる方法を試すことができると思います(しかし、実際には私のコードの知識は私にその機会を与えることはできません)。
また、私は本当に私がターミナルトレードパネルのティックを考えている最初の男であることを考えています!(私はこれが好きではありません。(そうであって欲しくはないのですが。)

私はずっと前にいくつかのダッシュボードEAを見ました - それは私がそのタイプのEAの本当に面白いではありませんです、それは私のために絶対に便利ではありません。

私を助けるためにあなたの試みに本当に感謝します。

( 英語は私の母国語ではありません )

 

時間はかかりますが、永遠にかかるわけではありません。

そして、あなたが賢くなれば、経験によりスピードも上がるでしょう。

最初が一番難しいんです。

好きなだけシンプルにすることも、複雑にすることもできます。

でも、簡単なことから始めたほうが楽な場合もあります。

でも、あなたのゴールは何ですか?良いコーダーになりたいのですか? それとも、良いトレーダーになりたいのですか?

 

Marco vd Heijden:

時間はかかりますが、永遠ではありません。
そして、あなたがより賢くなれば、経験によってより速くなるのです。
最初が一番難しい。
好きなだけシンプルにすることも、複雑にすることもできます。
でも、簡単なことから始めたほうが楽な場合もあります。
でも、あなたのゴールは何ですか?良いコーダーになりたいのですか? それとも、良いトレーダーになりたいのですか?

そうですね、でも今はまだ時間が足りません。

そうですね。トレードパネル EA用のスクリプトを書き始めたときは、簡単なことから始めたのですが、今ではトレードパネルEAが大好きです。確かに多くの時間を要しましたが、それだけの価値はあります。

実は今日、僕はコーダーやプログラマーになろうとは思っていないんだ。しかし、それはコーダーとプログラマーが何であるかを知らないということではありません。
時々、私はアイデアを持っていますが、私はそれを行うことはできませんと思う、私はそれが可能であることができないと思います。
その理由はただ一つ、私のコードの知識が乏しいからです。
また、私はそのアイデアを書き留めることができませんが、私はなぜかわからない?

そうです。今日、私は良いトレーダー、そしてコーダーになりたいと思っています。

お時間をいただきありがとうございました。

 

フローチャートにすると、もう少し簡単になります。

これはその一例です。

http://draw.io、無料で作ることができます。

draw.io - free flowchart maker and diagrams online
draw.io - free flowchart maker and diagrams online
  • draw.io
draw.io (formerly Diagramly) is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit diagram maker, and more. draw.io can import .vsdx, Gliffy™ and Lucidchart™ files .
 
Marco vd Heijden:

フローチャートにすると、もう少し簡単になりますよ。
これがその例だ。
http://draw.io、無料で作ることができます。

わぁ、教えてくれてありがとうございます。
私はそれのための時間を取ることができるとき、私はそれを試してみます。

ありがとうございます。

 

#スプレッドライン - オープン

Q: 複数のTrendLineオブジェクトを使用している場合、それぞれのオブジェクトに' ObjectMove'関数を使用する必要がありますか?
スマートな方法を探しているのですが、アドバイスや例を教えてください。

ObjectMove( name, 0, Time[0], Bid );
ObjectMove( name, 1, Time[0] + ( PeriodSeconds( NULL ) * 1 ), Bid );

トレンドラインのオブジェクトをスプレッドラインに使用する場合、チャートのタイムフレームや スケールが変わるとオブジェクトのサイズが変わってしまうのはご存知のとおりです。
Q: どのように例で学ぶことができますか?

Q: また、そのスクリプトを私のEAのトレードパネルに書く必要があるのですが、何かアドバイスがありますか?

よろしくお願いします。

 

価格水準を移動する縦線、時間軸を横切る横線、あるいは両方に沿って移動する角度によるトレンドラインのことでしょうか?

ObjectMove()で移動させるか、削除して新たに描画するかです。

時間軸に依存するものであれば、数ページ前に掲載した時間軸の切り替えを利用すればよいでしょう。

私はいつもOnDeinit()で異なるタイムフレームに切り替えたときにすべてを削除し、OnInit()か別の描画関数()で新しいものを描画しています。

もしスプレッドラインが欲しいなら、それはどの時間枠でも同じなので、Oninit()で2つか3つ作ってOnTick()で動かせばいいだけです。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
          
   ObjectCreate("Ask",OBJ_HLINE,0,0,Ask);ObjectSetInteger(0,"Ask",OBJPROP_COLOR,clrGold);ObjectSetInteger(0,"Ask",OBJPROP_WIDTH,1);
   ObjectCreate("Bid",OBJ_HLINE,0,0,Bid);ObjectSetInteger(0,"Bid",OBJPROP_COLOR,clrGold);ObjectSetInteger(0,"Bid",OBJPROP_WIDTH,1);
   ObjectCreate("Center",OBJ_HLINE,0,0,(Ask+Bid)/2);

   ObjectSetInteger(0,"Ask",OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,"Bid",OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,"Center",OBJPROP_SELECTABLE,false);

   ObjectSetInteger(0,"Ask",OBJPROP_BACK,true);
   ObjectSetInteger(0,"Bid",OBJPROP_BACK,true);
   ObjectSetInteger(0,"Center",OBJPROP_BACK,true);

   ObjectSetInteger(0,"Center",OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,"Center",OBJPROP_WIDTH,1);
   ObjectSetInteger(0,"Center",OBJPROP_STYLE,STYLE_DASH);

//---

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   ObjectMove("Ask",0,0,Ask);
   ObjectMove("Bid",0,0,Bid);
   ObjectMove("Center",0,0,(Ask+Bid)/2);
  }
//+------------------------------------------------------------------+


非常にシンプルですが、他に何か考えていたのでしょうか?

 

Marco vd Heijden:

シンプルでいいじゃないですか。

#スプレッドライン - 終了

コメントありがとうございます。

いや、この関数のためだけに縦線と横線を 使う必要はないです。(しかし、OrderOpenPrice()の行にはHorizontal Lineを使用する予定です。)

TrendLineオブジェクトは、スプレッド価格のラインやBid & Askラインのように、どれを使う必要があるのでしょうか。
( 私のコード知識がゼロだった頃、スプレッドラインのデザインについて考えましたが、あるインディケータがスプレッドラインを変更しているのを見て、それは不可能だと思い、インスピレーションを得て、すでに自分自身でそれをしようとし始めました。)

N( youNoted): もし、時間枠に依存するなら、 数ページ前に掲載 した時間枠の切り替えを使うことができます。
N: 私はいつもOnDeinit()で異なる時間枠に切り替えたときにすべてを削除し、OnInit()か別の描画関数()で新しいものを描画して います。

おお!絶対にこれは試してみます。
注意したいのは
私のインジケータとeaのためにこれまで多くのことをしたと述べたように、本当にそれらのすべてが私のために完璧に動作しますが、あなたがそれらをどのように行ったのかと尋ねられたら?
と聞かれたら、どう答えたか思い出せないので、数ページ前に確認します。

というのも、今のところ、時間軸を切り替えたときに、トレンドラインが正しく動かないという問題があるのです。

---

私は、以下のスプレッドライン(Bid & Ask Lines)のコードを試しています。
Q: その投稿は、私の下のコードの問題を解決することができますか?(私はまだ試していません。)
Q: また、以下のコードのどこが問題なのか、教えていただけますか?

S: ( その問題は解決しました。 )

ありがとうございました。