ordersend() コーディングのヘルプ...

 

やあ、みんな。

本当に不思議なのですが、次のコードを実行しても何も起こりません。GetLastError()は130を返します。

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green)


しかし、同じコードを使ってストップとターゲットの情報を削除すると、うまく注文を出すことができます。

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"My order #2",16384,0,Green);


私は空のエキスパートテンプレートを使っていて、スタート関数の 中にこの2行のコードを持っているだけです。

何が原因なのかよくわからないのですが...


ありがとうございます。

 
mugged:

やあ、みんな。

本当に不思議なのですが、以下のコードを実行しても何も起こりません。GetLastError()は130を返します。


しかし、同じコードを使ってストップとターゲットの情報を削除すると、うまく注文を出すことができます。


私は空のエキスパートテンプレートを使っていて、スタート関数の中にこの2行のコードを持っているだけです。

何が原因かはわからないけど・・・。


ありがとうございます。

どのようなブローカーですか?

分数点シンボル?

 
diostar:

どのようなブローカーですか?

分数点記号?


IBFXのミニ口座を使用しています。


Eur/Usdで運用しています。

 
また、strategy testerで コードを実行するとうまくいくのですが、実際に実行すると問題が発生します。
 

SLとTPの計算を間違えている

買いの場合

SL = Bid - StopLoss* ポイント

TP = ビッド + テイクプロフィット* ポイント

売りの場合

SL = アスク + StopLoss* ポイント。

TP = アスク - TakeProfit* ポイント。

さておき、いくつかのブローカーでは、SLとTPレベルなしでOrderSend()を行い、OrderModify()を行ってTPとSLを入力する必要があります。

 
mugged:

IBFXのミニ口座を使用しています。


Eur/Usdで実行しています。

分かった...具体的でなくて申し訳ありません。

これを試してみてください。

(1)at ordersend: sl=tp=0. その後、sl=tpをordermodify。

(2) eur/usd: 何桁?4桁か5桁か?

 
SDC:

SLとTPの計算を間違えている

買いの場合

SL = Bid - StopLoss* ポイント

TP = ビッド + テイクプロフィット* ポイント

売りの場合

SL = アスク + StopLoss* ポイント。

TP = アスク - TakeProfit* Point;


Hey bud, I tried swap "Ask" used to define my SL and TP with "Bid" as you suggest but still no luck.
 

おそらく、OrderSend()の後にOrderModify()を実行する必要があるためと思われます。

 
diostar:

オッケーです...。具体的でなくて申し訳ありません。

を試してみてください。

(1)at ordersend: sl=tp=0. 次にsl=tpをordermodifyする。

(2) eur/usd: 何桁?4桁ですか、5桁ですか?



1)はい、この方法はうまくいきます。しかし、これを回避する方法はあるのでしょうか?最初のオーダーは入るけど、モディファイが発生しない(接続が切れる、エラーが発生する、等々)最悪のケースを考えると嫌になります。


2)5桁のブローカー

 
5桁のブローカーの場合、SLとTPの値を10倍する必要があり、そうしないとTPまたはストップアウトは2.5pipsになります。
 
SDC:
5桁のブローカーでは、SLとTPの値を10倍する必要があるかもしれません。

送信してから修正する方法でうまくいくようです。注文とストップの両方を同じショットに入れるにはどうしたらいいでしょうか?私は本番 環境でそれらが一緒に入ることを望みます。
理由: