作成者 |
メッセージ |
matadfg
|
記事の件名: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年2月17日(金) 12:26 |
|
登録日時: 2009年9月16日(水) 22:59 記事: 25
|
お世話になっております。
先日も返答が得られない件について訴えた甲斐も空しくなおかつ返答が得られず非常に遺憾です。 常識的には返答が得られなければ他の所で質問しろ、という事になりますがEAに関する日本語のサポートが期待できる様な所は今のところ他に無いです。 それだけにここでサポートを期待せざるを得ない状況です。 自身メタトレーダについては初心者なので、EA、メタトレーダの扱い方で今後も色々と躓く事があります、まずその問題は自分で解決できる様に模索しますが、それでも解決できないのでここでお願いさせて戴いているわけです。 ですので解かる範囲、もし解決に結びつく術がなくても何かしらコメントを戴ければありがいです。 どうか解決に至らなくても(ちょっとしたヒントでも)構いませんので何かしらコメントを提供して戴ける様、どうか宜しくお願いします。
そして現在、躓いている問題ですが、注文発注の件です。
今の自分の技術力では以下のやり方が確立できてません。
★現レートが指値価格を超過すればBarの完成をまたず即現レートで発注する方法
指値発注は以下の関数をOP_BUYLIMITにして用いますが、現レートが指値価格を超過(買指値より安いレート)しても発注できない様になっています。 OrderSend(Symbol(),OP_BUYLIMIT,1,85.10,3,0,0,指買",0,0,Pink)
その替わりとしてOP_BUYという成行モードにしても発注されません。 OrderSend(Symbol(),OP_BUY,1,85.10,3,0,0,買",0,0,Pink)
現レートが指値価格を超過すればBar未完成でも即発注できる様にする事はチャートの時間スケールが一時間足、日足と大きくなればBar一つの時間内でも値幅変動も大きくなるので、乗り遅れない為にも必要不可欠なので是非実現させたいです。
★もう一つは指値の約定が確定されたと同時のBarで別の条件で成行注文が約定された場合の複数のポジションを持ち回避の仕方です。 資金量に限り、建玉管理を複雑化しない為にも、同時に複数のポジションを持つ事は回避できる上で、更に指値注文を優先にしたやり方をしたいですが、その術が確立できません。
どういう事かといいますと指値注文と成行注文が同じBarでなされる様な時、指値注文だけ成立させ成行注文は取下げるやり方です。 重複ポジション回避のため指値注文と同Barで出されてる成行注文は取り消したいという事です。 その為には、指値注文の約定が確定したら同じBarにいる内にそれが確認できなければ成行注文は取り消せません。
指値注文の約定確定を調べられる関数といえばOrderType()ですが、残念ながら指値注文の約定確定しても次Barに回らないと、指値注文発注中(OrderType()=2)から指値注文約定済(OrderType()=0)に切り替らない為、指値注文約定成立の確認が同Bar内でできないまま成行注文も約定せざるを得ません。 だからといって逆に成行注文優先にして、成行注文が確定する見込みの場合(買の場合は買指値 >= Ask、売りの場合は売指値 <= Bid)、ポジション重複を避けたければ指値注文を取り消す必要があり、場合によってはそのBarでしか指値でゲットできるチャンスがない(買指しの場合はBarの下ヒゲ部分を掴める)有利な建玉のチャンスを逸する事もなります。
ですので、重複ポジション数回避を可能とした指値注文優先のやり方ができる様にしたいです。
自分なりに相手に伝えれる様に文章を工夫してるつもりですがボキャブラ不足なので、言ってる事が解り辛いかもしれませんで済みません。
EAを是非ともマスターできる様にしたいので先輩の助言も必要です。 どうか答えられる範囲で構いませんので何卒、ご返答宜しくお願いします。
|
|
|
|
|
KEISHO_MAN
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年2月27日(月) 16:47 |
|
|
Hランク |
|
登録日時: 2009年8月31日(月) 11:39 記事: 290
|
こんにちは
このラボは市販のEAやラボ製EAや業者の話題がメインでプログラミングの質問等については、一応議論の場は設けられていますが活発ではないというのが現状だと思います。
後、気がつく事として
・返答が無くても愚痴らない、スレッドを乱立しない ・もっと相手に伝わりやすい文章でかいたほうがいいかもしれません ・使用環境なども明かさないでいる(os,業者、バージョン、demoかrealか等) ・実際どういうコードをかいて、機能しないのか明かしていない
という事があるかもしれませんね
上記の事含めて再考してみてください
現レートが指値価格を超過すればBarの完成をまたず即現レートで発注することはできると思いますし 指値と成行も重複しないようできると思います
|
|
|
|
|
matadfg
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年2月29日(水) 10:15 |
|
登録日時: 2009年9月16日(水) 22:59 記事: 25
|
KEISHO_MANさん
返答ありがとうございます。 ここの事情は解かりましたが、やはり初心者の気持ちも理解して戴きたいですね。 逆に自分の文章が理解しにくい点もあるかもしれませんが。
まず自身のPCの環境ですが Windows7、でMT4はFXTFからDLしたのを利用してます。 そして為替データはAuteForexireからDLしたのをインポートしてます。
>現レートが指値価格を超過すればBarの完成をまたず即現レートで発注することはできると思いますし >指値と成行も重複しないようできると思います
でしたら具体的に説明願えませんでしょうか?
色々、他のサイトも調べておりますがやはり自分の思いつく限りでは成行注文は OrderSend(Symbol(),OP_BUY,1,Ask,SPP,0,0,"買",0,0,Pink) OrderSend(Symbol(),OP_SELL1,Bid,SPP,0,0,"売",0,0,Pink)
しかないです、AskとBidの位置に指値額を指定しても自分の検証では、指値額に達するかどうか関係なく建玉に成功できませんでした、OrderSend error 138が返ってしまいました。
おそらく成行で建値を指定するという事は不可能な気がします。 指値を建てる時点で指値額に達していれば普通にask、bidでBar完了を待ってエントリするしかないと思います。
もしその問題について解かりましたらご回答宜しくお願いします。
|
|
|
|
|
KEISHO_MAN
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年3月01日(木) 19:39 |
|
|
Hランク |
|
登録日時: 2009年8月31日(月) 11:39 記事: 290
|
matadfg さんが書きました: やはり初心者の気持ちも理解して戴きたいですね。
あくまでも、ここで返答される方は任意で善意で好意でボランティアな気持ちで返答されています。 義務ではありませんし、任意で善意で好意なボランティアに「遺憾である」とか「気持ちを理解しろ」とかは適切な言葉とは思えません。 返答が貰えない理由の一つかもしれません。 そういった事はここではなく、運営に直接要望として伝えるか、雑談フォーラムでつぶやきスレがありますのでそこで愚痴っちゃってくださいませ。 matadfg さんが書きました: 指値を建てる時点で指値額に達していれば普通にask、bidでBar完了を待ってエントリするしかないと思います。
なぜBar完了までまたなければならないのでしょう? tickが更新されて 買の場合:指値にしたかった値段<=ask 売の場合:指値にしたかった値段>=bid だったら成行注文だせばいいだけの話だとおもいます。 情報が少ないので適切な返答ができるかできないかもわかりませんので、その点の考慮もよろしくおねがいします
|
|
|
|
|
knock
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年3月01日(木) 23:50 |
|
|
Hランク |
|
登録日時: 2010年8月05日(木) 14:06 記事: 15
|
研究は好きだがプログラミングは分からない!という私のような方も少なくないと思いますので、KEISHO_MANサマが書かれていらっしゃいますようにこの掲示板は善意、好意のレスを待つというスタンスになるかと思われます。
決して悪意で無視している訳では御座いませんので解決されることを祈っております。
|
|
|
|
|
matadfg
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年3月05日(月) 10:46 |
|
登録日時: 2009年9月16日(水) 22:59 記事: 25
|
KEISHO_MANさん knockさん
了解しました、読んでいる人の立場を考えて謙虚な気持ちなってみる事も大切ですね。 回答を得られないで終わる事への焦りを感じ言いすぎてしまいました。 以後気をつけます。
>なぜBar完了までまたなければならないのでしょう? >tickが更新されて >買の場合:指値にしたかった値段<=ask >売の場合:指値にしたかった値段>=bid >だったら成行注文だせばいいだけの話だとおもいます。
このやり方、実は今の検証ストで成行指値の術が解明されないので、暫定的なつもりで組み込んでいます、この方法で検証すれば当然Barの完了を待たなければなりませんが、一番タイムフレームの素早い一分足ですら急激な価格の変動に対処できず折角のエントリや決済のチャンスを台無しにしてしまう事もよくあるので、そのやり方をやりたくて仕方がなく術を探してました。 でしたらOP_BUYLIMITで普通に指値をすべきですが、このやり方だと発注、変更する度に業者サーバに情報が送られるのでサーバに過負荷を掛けてしまう等のトラブルが予測され指値の制限を求められる可能性もあるので、その問題を起こさない為に指値の発注情報の管理をPCで行いレートが指値に達しった瞬間に初めてサーバに成行きで即エントリーできる様にする事が理想だと思いその方を追求した次第です。
|
|
|
|
|
KEISHO_MAN
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年3月05日(月) 19:00 |
|
|
Hランク |
|
登録日時: 2009年8月31日(月) 11:39 記事: 290
|
matadfg さんが書きました: このやり方、実は今の検証ストで成行指値の術が解明されないので、暫定的なつもりで組み込んでいます、この方法で検証すれば当然Barの完了を待たなければなりませんが、一番タイムフレームの素早い一分足ですら急激な価格の変動に対処できず折角のエントリや決済のチャンスを台無しにしてしまう事もよくあるので、そのやり方をやりたくて仕方がなく術を探してました。 でしたらOP_BUYLIMITで普通に指値をすべきですが、このやり方だと発注、変更する度に業者サーバに情報が送られるのでサーバに過負荷を掛けてしまう等のトラブルが予測され指値の制限を求められる可能性もあるので、その問題を起こさない為に指値の発注情報の管理をPCで行いレートが指値に達しった瞬間に初めてサーバに成行きで即エントリーできる様にする事が理想だと思いその方を追求した次第です。 FXTFは使った事がないのですが、「成行指値」という注文方法は無いと思います 成行きでaskかbidかMarketInfo()で取得した最新価格で売買する方法じゃないとエラー138が提示される可能性があると思います どういうコードを書いたが売買せず、暫定的にどういうコードを書いたか等具体的に表示していただいたほうが、いちいち答えを予想して書かなくてすむので提示していただいたほうがよいと思いますよ 注文部分でバレたらまずいコードはないとおもうのですが?いかがでしょうか? 指値を注文&変更を繰り返し、サーバに過負荷をかけるというのは、エントリー価格をtickごとに計算してtick毎違う値段で注文してるってことですか? それなら負荷がかかる可能性はありますね。
|
|
|
|
|
matadfg
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年3月06日(火) 17:08 |
|
登録日時: 2009年9月16日(水) 22:59 記事: 25
|
KEISHO_MANさん 指値成行を期待して利用したコード、つまりOderSendの書き方ですが OrderSend(Symbol(),OP_BUY,1,LimitPirce,SPP,0,0,ENLMTname+"買",0,0,Pink); とタイプがOP_BUYなので、発注価格の欄を本来はAskと書くところを希望価格で発注したいからLimitPirceに替えただけです。 言われた通り、このやり方だとレートがLimitPirceに達するかどうか関係なくエラー138になってしまいました。 自分もMQL4の取引関数を調べてみる限りでは、自分の望む成行指値はないと思ってます。 引用: 指値を注文&変更を繰り返し、サーバに過負荷をかけるというのは、エントリー価格をtickごとに計算してtick毎違う値段で注文してるってことですか? それなら負荷がかかる可能性はありますね。 つまり自分の試してるEAは小まめに指値を変えてるので頻繁にサーバに発注するという問題を考えなければならなくなったのです。
|
|
|
|
|
KEISHO_MAN
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年3月07日(水) 09:19 |
|
|
Hランク |
|
登録日時: 2009年8月31日(月) 11:39 記事: 290
|
matadfg さんが書きました: 指値成行を期待して利用したコード、つまりOderSendの書き方ですが
OrderSend(Symbol(),OP_BUY,1,LimitPirce,SPP,0,0,ENLMTname+"買",0,0,Pink);
とタイプがOP_BUYなので、発注価格の欄を本来はAskと書くところを希望価格で発注したいからLimitPirceに替えただけです。 言われた通り、このやり方だとレートがLimitPirceに達するかどうか関係なくエラー138になってしまいました。 自分もMQL4の取引関数を調べてみる限りでは、自分の望む成行指値はないと思ってます。
つまり自分の試してるEAは小まめに指値を変えてるので頻繁にサーバに発注するという問題を考えなければならなくなったのです。 リファレンスに At opening of a market order (OP_SELL or OP_BUY), only the latest prices of Bid (for selling) or Ask (for buying) can be used as open price. If operation is performed with a security differing from the current one, the MarketInfo() function must be used with MODE_BID or MODE_ASK parameter for the latest quotes for this security to be obtained. とありますので、OP_BUY(SELL)のオーダー部分に 自分の希望価格を入れるのは良い方法ではなく オーダーを出すに至る条件式で現在の最新のask/bidと希望価格を比べるという形が最善なんではないでしょうか? 試してるEAがこまめにtickごとに希望価格が変わるのであれば、負荷を考えると条件式の中でtickごとに変動する希望価格とask/bidを比較して売買サインがでれば成行注文とするほうがいいと思います。 ここからは、私の霊視ですが matadfg さんの目指すEAはおそらくGSのようなHFTっぽいEAを目指してらっしゃるのではないかと思いますが 成行注文も指値注文も値段指定できますが必ずしもその値段で約定するわけでもなく滑りもありますので、1,2pipsを争う厳密な計算をするEAはMT4では理論上と現実の壁と言いますかリアル稼働は難しいのでは(不可能といってるわけではないです)と思います。 MT4シストレ界隈で著名な人たち( FX相場&アフィ芸人は除く)の話を見ていると大体MT4の制約、仕様の問題で現実は厳しいという話になっています。
|
|
|
|
|
matadfg
|
記事の件名: Re: なおかつ返答が得られない件 現レートが指値超えれば即発注、指値約定確定時の成行注文取消しについて Posted: 2012年3月09日(金) 16:24 |
|
登録日時: 2009年9月16日(水) 22:59 記事: 25
|
KEISHO_MAN さん 引用: とありますので、OP_BUY(SELL)のオーダー部分に自分の希望価格を入れるのは良い方法ではなく オーダーを出すに至る条件式で現在の最新のask/bidと希望価格を比べるという形が最善なんではないでしょうか? 試してるEAがこまめにtickごとに希望価格が変わるのであれば、負荷を考えると条件式の中でtickごとに変動する希望価格とask/bidを比較して売買サインがでれば成行注文とするほうがいいと思います。 引用: matadfg さんの目指すEAはおそらくGSのようなHFTっぽいEAを目指してらっしゃるのではないかと思いますが 成行注文も指値注文も値段指定できますが必ずしもその値段で約定するわけでもなく滑りもありますので、1,2pipsを争う厳密な計算をするEAはMT4では理論上と現実の壁と言いますかリアル稼働は難しいのでは(不可能といってるわけではないです)と思います。
MT4シストレ界隈で著名な人たち(FX相場&アフィ芸人は除く)の話を見ていると大体MT4の制約、仕様の問題で現実は厳しいという話になっています。 想像はある程度当たってると思いますが、目指してるのは確かに分足を利用する短期売買系のEAです、もちろん細かいpipにシビアな事態にも遭遇します、なのでチャンスは速攻でモノにするシステムにする必要があり、注文情報の発信を最小化し業者サーバに迷惑をかけない情報のPC側管理を可能とした成行指値を目指してた訳です。 短期売買なので、KEISHO_MAN さんの懸念されてる実売買は難しいという制約に引っ掛かる事もありえますね、自分の目指すシステムがロジック通りに稼動するか心配です。 裁量トレーダの立場になって考えると、「この価格まで下がってきたら買おう」と決め、その価格に下がった途端、即成行買いという行動を見ればEAに成行指値を実装する事は不可能ではないと思うので、メタクオート社にもその関数を実装していただける事を願ってやみません。
|
|
|
|
|
|