バーの端の注文を閉めるのを手伝ってくれ! - ページ 3

 
RaptorUK:

はい、start()はまだ実行中でない限り、各ティックで呼び出されます。

しかし、それはこのスレッドの最初の投稿であなたが求めたものではありません ... 今あなたは、終値がピリオドだけ遅れて、さらに別のピリオドなどでも構わないと言っているのです。もし、Close をバーが終了する直前に行いたいのであれば、次のバーの最初のティックで行わなければなりませんし、Close が失敗したかどうかをチェックして、正しい方法で再試行して、Close を成功させなければならないのです。

私は他の解決策を持っていない。私が持っていたならば、私はそれらを行うだろう。


SDC

あるバーの終値が次のバーで繰り返されないことは非常にまれで、始値である必要はありません ...

ええ、時にはバーが前のローソクの終値の下や上に開くこともありますし、まさにそのレベルで開くこともあります。しかし、時にはすべてを台無しにするようなギャップがあります。ですから、私はそれを避けるためのより良い解決策が欲しかったのですが、今はそれが不可能であることがわかります。
 

問題、大きな問題です。

/////////////////OrderSelect() and other stuff

if( OrderType() == OP_BUY ){
    
if( /* blablabla condition && */ Time[0]>OrderOpenTime()  ){

OrderClose( OrderTicket(), OrderLots(),OrderClosePrice() ,TAKEPROFITPIPS,CLR_NONE);             
RefreshRates();    

}}

しかし、問題は、バックテストでは魔法のように動作しますが、ライブのデモ口座で 試したところ、非常に愚かなことでした。ナンセンスとしか言いようがありません。

しかし、それでもそれはそうです、だから私はエラーを除外するために、唯一の使用。

if( Time[0]>OrderOpenTime()  )

他の干渉を排除するために、ifでこれを、しかし、はい、問題はこのテストである。

Time[0]>OrderOpenTime() 

どのように私はそれをバイパスすることができます、またはsome1があまりにもライブ口座で動作し、このに別の同等のテストを見つけることができます、助けてください

 
Proximus:

問題、大きな問題です。

しかし、問題は、バックテストでは魔法のように動作しますが、ライブのデモ口座で試したところ、非常に愚かなことでした.それはそれらを開いた直後にポジションを閉じ始めました。ナンセンスとしか言いようがありません。

それは起こったことなので、理由を見つけましょう ... ... 例えば、もしあなたのOrderSelect()が失敗したら(うまくいったか失敗したかチェックしていますか?)、OrderType()は間違った値、または偶然に正しいものを返し、OrederOpenTime()は間違った値を返します ... おそらくゼロでゼロは時間[0]より小さい ... 何がうまくいかないのか理解しようとしたときに OrderOpenTime() の値をプリントしました? なぜしませんか?

私がこのリンクを貼り続けるのには、それなりの理由があります ... ...関数の戻り値とは何ですか?どのようにそれらを使用するのですか? なぜあなたは良いアドバイスを無視し続ける のですか?

 
Proximus:

私は他の解決策を持っていない。私が持っている場合、私はそれらを行うだろう。

そうですね、時にはバーが前のローソクの終値より下か上に開くこともありますし、まさにそのレベルで開くこともあります。しかし、時にはすべてを台無しにしてしまうギャップがあります。

それは正確に終値 でなければならないのでしょうか?ティックの到着が1秒に1回など速い場合は、バーの終値から5秒以内に到着した価格を、1分に1回など遅い場合は、バーの最後の30秒間に到着した価格を、その間に到着しなかった場合は、次のバーの始値を取得するようなことをやってみてはどうでしょうか。

 
SDC:

終値と全く同じでなければならないのですか?ティックの到着が1秒に1回など速い場合は、バーの終値から5秒以内に到着した価格を、1分に1回など遅い場合は、バーの最後の30秒間に到着した価格を、その間に到着しなかった場合は、次のバーの始値を取得する、というようなことを試してみてはどうでしょうか。


それは正確にClose[1]である必要はありません以前の記事で我々はそれが正確にそのlevel.Butを打つことは不可能であることを除外し、それに二番目に良い/最も近いものはまたそれを行います。あなたはそれが何であるかを確認するために、コードであなたのアイデアを書いてくださいすることはできますか?
 

Volume[0]==1 ;// 新しいバー = 最後のバーを閉じた。

または

bool NewBar()

{

static datetime lastbar;

datetime curbar = Time[0];

if(lastbar!=curbar)

{

lastbar=curbar;

return (true)とする。

さもなくば

{

return(false)。

}

}


if (Signal=="BUY" && NewBar())

 
一度にたくさんのチャートを開いていて、そのすべてが同じマジックNRを持っていたのですが、今はランダムに生成されたものを使っているので大丈夫です。
 

こんにちは。

H4フレームでバーが終了する5分前にオープンポジションをクローズする方法はありますか? ありがとうございます。

 
jonjon:

こんにちは。

H4フレームでバーが終了する5分前にオープンポジションをクローズする方法はありますか? ありがとうございます。



はい、あります。
 
Mehmet: Volume[0]==1 ;// 新しいバー = 最後のバーを閉じた。
  1. もし、バーの最初のティックを 見逃すと、コードは失敗 し、バー全体を見逃す ことになります。必ず時間を使って ください。
  2. コードを貼り付けないでください
    ビデオを再生する
    投稿を編集して ください。
    大量のコードについては、添付して ください。