[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 254

 
こんにちは!愚問かもしれませんが、もしかしたら解決策があるのかもしれませんね。リクオートは 証券会社のサーバーで処理されているとのことですが、もしかしてプログラム的に処理する方法があるのでしょうか?その時間を短縮することは可能か?私のブローカーは、7〜10秒かかることもありますこれは悪夢だ。
 
Shniperson:
こんにちは!これはおそらく馬鹿な質問だと思いますが、もしかしたら解決策があるのでしょうか? リクオートは証券会社のサーバーで行われるとのことですが、もしかしたらプログラム的にリクオートを処理する方法があるのでしょうか? その時間を短縮することは可能か? 私のブローカーは、7〜10秒かかることもありますこれは悪夢だ。


いいえ、自由に使えるのは、ソフトウェアによるリクォートの 処理だけ です。例 - Kim I.V. によるオンライン用の 関数OpenPosition()- リクエストのサイクル処理の最後の行にあります。

 if (err!=135) Sleep(1000*7.7);

一般に、#135と#138のエラーは、同じ処理を含んでいると私は理解しています:-))

ERR_PRICE_CHANGED 135 価格が変更された
ERR_OFF_QUOTES 136 No Price
ERR_BROKER_BUSY 137 ブローカービジー状態
ERR_REQUOTE 138 新価格

私のフクロウでは、この行は次のように採点されています。

if ((error != ERR_PRICE_CHANGED) && (error != ERR_REQUOTE)) Sleep(1000*7.7);
      


	          
 
Roman.:


いいえ、リクオートを 扱う のはプログラムのみです。例)ループの最終行にキムによる関数OpenPosition() でリクォート処理

一般に、#135と#138のエラーは、同じ処理を含んでいると私は理解しています:-))

ERR_PRICE_CHANGED 135 価格が変更された
ERR_OFF_QUOTES 136 No Price
ERR_BROKER_BUSY 137 ブローカービジー状態
ERR_REQUOTE 138 新価格

私のフクロウでは、この行は次のように記入されています。


ソフトの遅延でリクオートを「戦わせる」というのが理解できないのですが?

DTがオーダーオープンを遅らせているということですが、ソフトウェア的な遅れもあります。

唯一の「戦う」方法。

a) 大きなスリッページを使用する

b) 保留注文を使用する

最近、私の証券会社では注文を1分まで遅らせるようになったので、成行注文で取引できない。

 
nadya:
OrderCommission()関数を使って、自分で金額を計算してみてはいかがでしょうか。

int n=OrdersTotal();
double Comission=0;
while (n>0)
 {
 OrderSelect(n-1,SELECT_BY_POS,MODE_TRADES);
 Comission=Comission+OrderCommission();
 n--;
 }
このコードで正しく計算されているかは分かりませんが
 
abolk:


...

a) 大きなスリッページを使用する

b) 保留注文を使用する

...成行注文では、単純に不可能です。

a) - これがデフォルトです。

b) - 成行注文が開いたら、それも使ってみてはどうだろう...。

 
友人たちよ、私の前のメッセージに返信してくれ
 

平均値を求める

MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i));

テスターでn本のローソク足に対して実行し、Alertで出力する。

どうしてもうまくいかないんです。

ヘルプ

 
palesandr:

平均値を求める

MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i));

テスターでn本のローソク足に対して実行し、Alertで出力する。

どうしてもうまくいかないんです。

ヘルプ

どのように機能しないかを教えてください。
 


extern double n = 360;


int start()
{

double v, vol;

for(int i=1;i<=n;i=i+1)
{
v=MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i));
vol=(vol+v);
}
警告 ("vol=", vol );
返却;
}

 
palesandr:


extern double n = 360;


int start()
{

ダブルV、Vol;

for(int i=1;i<=n;i=i+1)
{
v=MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i));
vol=(vol+v)です。
}
アラート("vol=", vol );
を返します。
}


vol = vol / n;
Alert ("vol=", vol );