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

 
Vinin:


よし、ちょっとだけ理屈を持っていこう

条件に関係なくサイクルが実行される if(NewBar())


私はそれがNewBAR()に依存する必要はありません。 この関数は、山積みになった注文を置くことを避けるために必要です。 私のコード(その最後のバリエーション)がより良く機能する理由を教えてください。

は機能しますが、同じようにSELLSTOPを行うとすぐにトレードが全く開かなくなるのですが?

 

親愛なる皆様、私は初心者です!

初めてEAを書き始めたのですが・・・・・・・・・・・・・・・・・・・・・・・・書ききれません。

今のところ、ストラテジーテスターで テストしています。

それはとてもシンプルなことです。

10時間足のローソク足が始まったら、その始値から60ピップス離れたところに注文を出します。

私はそれで成功を収めたことがあります。

しかし、注文を出した瞬間から1時間以内に変化しない場合、保留中の注文を削除しなければなりません。

を成行注文にする。

以下は私のコードです。

int start()
{
double Price=Ask+60*Point;
double SL=Price-30*Point;
double TP=Price + 15*Point;
if(OrdersTotal()==0 && Hour()==10 && Minute()== 00 )
OrderSend("EURUSD",OP_BUYSTOP,0.1,Price,0,SL,TP,「fjdu」,123,TimeCurrent( )+3600)です。

}

このコードは正常にコンパイルされ、テスターでは何のエラーも表示されません。

しかし、期限切れパラメータは機能しません。つまり、1時間以内に成行注文に変換されなかった保留中の注文は削除されません。

値3600を3600000に変更したのですが・・・何も起こりません。

私の間違いが何なのか、教えていただけると幸いです。

 
solnce600:
expirationパラメータが機能しない

ほとんどの場合、ブローカーがサポートしていません。はっきり言って、こんな感じでいいんです。

int i,ot = OrdersTotal();

for(i=ot-1;i>=0;i--)
{
   if(!OrderSelect()) continue;
   if(OrderMagicNumber()!=123) continue;
   
   if(OrderType()==OP_BUYSTOP && TimeCurrent()-OrderOpenTime()>3600)
   {
      OrderDelete(OrderTicket());
   }
}
 
solnce600:

拝啓、新米です。

初めてEAを書き始めたのですが・・・・・・・・・・・・・・・・・・・・・・・書ききれません。

今のところ、ストラテジーテスターでテストしています。

それはとてもシンプルなことです。

10時間足のローソク足が始まったら、その始値から60ピップス離れたところに注文を出します。

私はそれで成功を収めたことがあります。

しかし、注文を出した瞬間から1時間以内に変化しない場合、保留中の注文を削除しなければなりません。

を成行注文にする。

以下は私のコードです。

int start()
{
double Price=Ask+60*Point;
double SL=Price-30*Point。
double TP=Price + 15*Point;
if(OrdersTotal()==0 && Hour()==10 && Minute()== 00 )
OrderSend("EURUSD",OP_BUYSTOP,0.1,Price,0,SL,TP, "fjdu",123,TimeCurrent( ) + 3600).を送信します。

}

このコードは正常にコンパイルされ、テストされます。

しかし、期限切れパラメータは機能しません。つまり、1時間以内に成行注文に変換されなかった保留中の注文は削除されません。

値3600を3600000に変更したのですが・・・何も起こりません。

私の間違いが何なのか、教えていただけると幸いです。

時間単位、分単位で同じように削除する条件を作れないのはなぜですか?DCは有効期限を満たさない場合があります。
 
borilunad:
また、同じ時間、同じ分単位で削除する条件を作れないのはなぜですか?DCは有効期限を満たさない場合があります。


alsu:

ほとんどの場合、ブローカーがサポートしていません。はっきり言って、こんなことができます。



私はAlpari.Onデモ口座で手動で振り子を設定し、有効期限 を置く - 1時間を持っている端末を持っています。すべてOKでした。

ブローカーがこのパラメータをサポートしていない場合はエラーになると書いてありましたが...エラーは出ていません。

テストは実行されている......が、注文は削除されていない。

 
borilunad:
また、同じ時間、同じ分で削除する条件を作れないのはなぜですか?DCは有効期限を満たさない場合があります。

時間単位、分単位ではどうでしょうか。

ありがとうございます。

 
solnce600:

時間単位、分単位ではどうでしょうか。

ありがとうございます。



expirationパラメータは何に置き換えたらいいですか?

 
solnce600:

そして、1時間1分単位で、どうなのか?

ありがとうございます。

開けたときと同じ、1時間後の11時、それがあなたの手元にあるのですそれは私のやり方ではありませんが、要点は変わりません。
 
borilunad:
開けた時と同じ、たった1時間後の11時。やり方は違うけど、ポイントは変わらない。

このパラメータを変更する必要があるのか、ないのか、よくわかりません。

その場合、私のコードにexpirationパラメータを必要に応じて挿入し、その行全体を回答の本文に貼り付けていただければと思います。

ありがとうございます。

 
solnce600:

このパラメータを変更する必要があるのか、ないのか、よくわかりません。

もしそうなら、私のコードにexpirationパラメータを必要に応じて挿入し、その行全体を返信のテキストに貼り付けていただければ幸いです。

ありがとうございます。



次のようなバリエーションを提案できる。

if(Hour()==11 && OrdersTotal()>0)

{

if(OrderSelect(0,SELECT_BY_POS)==true)

{

if(OrderType()==OP_BUYSTOP)

{

OrderDelete(OrderTicket())。

}

}

}

そして、expiryパラメータを使用しない。デメリットは、取引する際に、インターネットに接続したパソコンを起動し、端末のスイッチを入れておかないとポジションが決済されないことです。