新しいAPI MetaTrader 4が利用可能になりました。 - ページ 6 12345678910111213...20 新しいコメント 削除済み 2008.10.06 19:46 #51 yewnix: よくわからないんだけど... 注文の送信は一日中できるのですが... しかし、私はOrderCloseを行う大きな問題を抱えています.... これらの例を教えてください。 .NETラッパーDLLのせいじゃないと思うんだけど。 こんにちは、yewnix! You can take a look on <Program Files>TradeZone ThatzMT4API Phoenix Short_Sample_MQL4.zip をご覧ください。 このシンプルなMQLコードは、<orderproxy.mqh>を含めると、すべてのオープンオーダーをクローズします。 int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", ""); int Total = TZ_OrdersTotal(); for(i=0;i<Total;i++) { TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES); TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3); } よろしくお願いします。 New API MetaTrader 4 Array Syncing to Orders How to use magic 削除済み 2008.10.06 20:12 #52 TradeZone: yewnixさん、こんにちは。You can take a look on C:\Arquivos de Programas/TradeZone AppI, DeveloperこのシンプルなMQLコードで、<orderproxy.mqh>を含めると、すべての未決済注文を閉じます。 int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", ""); int Total = TZ_OrdersTotal(); for(i=0;i<Total;i++) { TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES); TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3); } よろしくお願いします。 私はC#でこれをしようとしています。 私はあなたの関数を 取り、.NET用のDLLラッパーを書きました。 すなわち double askprice = MT4ApiNet.MarketInfo_MT4(h, "GBPUSD", (int)MT4ApiNet.MarketInfoType.MODE_ASK) MT4ApiNet.OrderSend_MT4(h, "GBPUSD", (int)MT4ApiNet.OrderType.OP_BUY, 1, askprice, 3, (askprice - 0.0050), (askprice + 0.0050), "My Program", 100, 0).これで完璧です。 これは完璧に動作します。この注文は完璧に表示されます。 さて、MetaTraderから注文番号を取得すると(例:1234を注文番号として使用)、次のようになります。 MT4ApiNet.OrderClose_MT4(h, 1234, 1, MT4ApiNet.OrderClosePrice_MT4(h,1234), 20) とします。 これは注文をキャンセルしません。 注文を循環させ、MT4ApiNet.OrderGet_MT4を実行しても、まだ動作しない。 New API MetaTrader 4 外部世界と情報交換するメタトレーダー4 エキスパートアドバイザー ヘッジ EA の検証でストラテジーテスタの限界を打ち破る 削除済み 2008.10.06 20:35 #53 参考までに。 OrderCloseを 行った後、最後のエラーが発生すると... MessageBox.Show(MT4ApiNet.ErrorDescription_MT4(MT4ApiNet.GetLastError_MT4(h))) と表示されます。 This return General Erro せめてdelphiでちゃんとしたOrderCloseを表示してくれないかな? delphiでも私のコードはハングアップします。 削除済み 2008.10.07 08:46 #54 TradeZone: こんにちは、jusoさん。<Program Files>³TradeZone ³TZMT4API ³Developer ³MetaTrader4 API.txt は、あなたが欲しいものを含んでいます。よろしくお願いします。 こんにちは、TradeZone 迅速な対応に感謝します。私がC++の開発を積極的に行っていたのは8年前ですが、その頃はDLの*.hと*.libがないとAPIは当然実行できませんでした。もし、*.hファイルがあっても*.libがなければ、面倒ではあるが、関数の アドレスを動的に解決することで実行できる。ということで、*.libがないけれども、*.hは自分で作れる。もしかしたら、私が知らないだけで、DLL自体から簡単にlibを作成する方法があるかもしれません。 よろしくお願いします。 Juso 削除済み 2008.10.07 20:03 #55 TradeZoneです。 Delphiアプリケーションから送信されるOrderClose_MT4コマンドの動作サンプルを掲載していただけませんか? 先に述べたように、私はこれを動作させることができません。 ありがとうございます。 削除済み 2008.10.08 18:41 #56 バンプ... バンプ... 削除済み 2008.10.09 15:19 #57 さて、これに対する反応がないので、私はあなたのDLLが実際にどのように動作するかを調べ始めました。 実際にかなり良いアイデアです。 10個のチャートをロードし、それぞれを異なるEAにアタッチします。 これらのEAが実行され、experts/filesディレクトリにファイルが作成されます。 DLLはこれらのファイルを読み込んで、プログラムされたアプリにデータを表示します。 EAは(DLLの呼び出しによって生成された)ファイルの存在をチェックし、それらが存在する場合は、トランザクションを処理し、応答データを返すために他のファイルを作成し、その後DLLによって作成されたファイルを削除するので、トランザクションが完了または失敗したことが分かります。 もし私が間違っていなければ、Login_MT4コマンドから戻ってきたあなたのハンドルは、ランダムに生成されたディレクトリ名へのインデックスにすぎません。この方法で、どのterminal.exeプロセスを制御し、生成されたファイルをどこに置くかを知ることができます。 私はこのすべてについて間違っているかもしれません、私はちょうど私が持っているOrderCloseの 問題を修正したいのです... しかし、何度も何度もファイルを作成する代わりに...メモリーマッピング(Pair Name_Handleに基づいたメモリーマップの作成/オープン)を使うことを強くお勧めします。 ところで、OrderCloseについて教えてほしいのですが、そうすれば、私自身のEAとメモリーマップDLLインターフェースをコーディングする必要がありません。 以上、このAPIに関する私の分析でした。 乾杯 削除済み 2008.10.09 15:43 #58 みんな。 私は、このような統合をうまく動作させ、テストしています(このコードではありません)。これはエキスパートによって行われ、C++/Managed C++から.NETモジュールに機能を 公開します。これは、スムーズな取引管理、エラーの報告、リアルタイムの見積もりなどを可能にします。通信はTCPを使用しているので、高速で信頼性があります。 新しいオープンソース取引プラットフォーム(.NETベース、MT4でデータ受信や注文が可能)の一部として、完全無料のオープンソースとして公開される予定です。このプラットフォームを使うか、あるいは単に統合の一部を使うか、それはあなた次第です。 もし興味があれば、手を上げてください、そうすれば詳細をお伝えします。) プラットフォームは、数日後(10月15日頃)に立ち上げる予定です。 削除済み 2008.10.09 15:47 #59 Peer2kです。 ナイス!メモリマッピングの代わりにTCPを使おうと思っていたんだ。 もしあなたがコードへのリンクを送ってくれるなら、私はそれを見ても構わないと思っています。 それはあなた次第だけどね :) 乾杯 yewnix@gmail.com 削除済み 2008.10.09 15:52 #60 hey、peer2k、それは非常にクールだろう、詳細と私に投稿してください、yuryrub@gmail.com。 12345678910111213...20 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
よくわからないんだけど...
注文の送信は一日中できるのですが...
しかし、私はOrderCloseを行う大きな問題を抱えています....
これらの例を教えてください。
.NETラッパーDLLのせいじゃないと思うんだけど。
こんにちは、yewnix!
You can take a look on <Program Files>TradeZone ThatzMT4API Phoenix Short_Sample_MQL4.zip をご覧ください。
このシンプルなMQLコードは、<orderproxy.mqh>を含めると、すべてのオープンオーダーをクローズします。
int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", "");
int Total = TZ_OrdersTotal();
for(i=0;i<Total;i++)
{
TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3);
}
よろしくお願いします。
yewnixさん、こんにちは。
You can take a look on C:\Arquivos de Programas/TradeZone AppI, Developer
このシンプルなMQLコードで、<orderproxy.mqh>を含めると、すべての未決済注文を閉じます。
int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", "");
int Total = TZ_OrdersTotal();
for(i=0;i<Total;i++)
{
TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3);
}
よろしくお願いします。
私はC#でこれをしようとしています。
私はあなたの関数を 取り、.NET用のDLLラッパーを書きました。
すなわち
double askprice = MT4ApiNet.MarketInfo_MT4(h, "GBPUSD", (int)MT4ApiNet.MarketInfoType.MODE_ASK)
MT4ApiNet.OrderSend_MT4(h, "GBPUSD", (int)MT4ApiNet.OrderType.OP_BUY, 1, askprice, 3, (askprice - 0.0050), (askprice + 0.0050), "My Program", 100, 0).これで完璧です。
これは完璧に動作します。この注文は完璧に表示されます。
さて、MetaTraderから注文番号を取得すると(例:1234を注文番号として使用)、次のようになります。
MT4ApiNet.OrderClose_MT4(h, 1234, 1, MT4ApiNet.OrderClosePrice_MT4(h,1234), 20) とします。
これは注文をキャンセルしません。
注文を循環させ、MT4ApiNet.OrderGet_MT4を実行しても、まだ動作しない。
参考までに。
OrderCloseを 行った後、最後のエラーが発生すると...
MessageBox.Show(MT4ApiNet.ErrorDescription_MT4(MT4ApiNet.GetLastError_MT4(h))) と表示されます。
This return General Erro
せめてdelphiでちゃんとしたOrderCloseを表示してくれないかな?
delphiでも私のコードはハングアップします。
こんにちは、jusoさん。
<Program Files>³TradeZone ³TZMT4API ³Developer ³MetaTrader4 API.txt は、あなたが欲しいものを含んでいます。
よろしくお願いします。
こんにちは、TradeZone
迅速な対応に感謝します。私がC++の開発を積極的に行っていたのは8年前ですが、その頃はDLの*.hと*.libがないとAPIは当然実行できませんでした。もし、*.hファイルがあっても*.libがなければ、面倒ではあるが、関数の アドレスを動的に解決することで実行できる。ということで、*.libがないけれども、*.hは自分で作れる。もしかしたら、私が知らないだけで、DLL自体から簡単にlibを作成する方法があるかもしれません。
よろしくお願いします。
Juso
TradeZoneです。
Delphiアプリケーションから送信されるOrderClose_MT4コマンドの動作サンプルを掲載していただけませんか?
先に述べたように、私はこれを動作させることができません。
ありがとうございます。
さて、これに対する反応がないので、私はあなたのDLLが実際にどのように動作するかを調べ始めました。
実際にかなり良いアイデアです。
10個のチャートをロードし、それぞれを異なるEAにアタッチします。
これらのEAが実行され、experts/filesディレクトリにファイルが作成されます。
DLLはこれらのファイルを読み込んで、プログラムされたアプリにデータを表示します。
EAは(DLLの呼び出しによって生成された)ファイルの存在をチェックし、それらが存在する場合は、トランザクションを処理し、応答データを返すために他のファイルを作成し、その後DLLによって作成されたファイルを削除するので、トランザクションが完了または失敗したことが分かります。
もし私が間違っていなければ、Login_MT4コマンドから戻ってきたあなたのハンドルは、ランダムに生成されたディレクトリ名へのインデックスにすぎません。この方法で、どのterminal.exeプロセスを制御し、生成されたファイルをどこに置くかを知ることができます。
私はこのすべてについて間違っているかもしれません、私はちょうど私が持っているOrderCloseの 問題を修正したいのです...
しかし、何度も何度もファイルを作成する代わりに...メモリーマッピング(Pair Name_Handleに基づいたメモリーマップの作成/オープン)を使うことを強くお勧めします。
ところで、OrderCloseについて教えてほしいのですが、そうすれば、私自身のEAとメモリーマップDLLインターフェースをコーディングする必要がありません。以上、このAPIに関する私の分析でした。
乾杯
みんな。
私は、このような統合をうまく動作させ、テストしています(このコードではありません)。これはエキスパートによって行われ、C++/Managed C++から.NETモジュールに機能を 公開します。これは、スムーズな取引管理、エラーの報告、リアルタイムの見積もりなどを可能にします。通信はTCPを使用しているので、高速で信頼性があります。
新しいオープンソース取引プラットフォーム(.NETベース、MT4でデータ受信や注文が可能)の一部として、完全無料のオープンソースとして公開される予定です。このプラットフォームを使うか、あるいは単に統合の一部を使うか、それはあなた次第です。
もし興味があれば、手を上げてください、そうすれば詳細をお伝えします。)
プラットフォームは、数日後(10月15日頃)に立ち上げる予定です。
Peer2kです。
ナイス!メモリマッピングの代わりにTCPを使おうと思っていたんだ。
もしあなたがコードへのリンクを送ってくれるなら、私はそれを見ても構わないと思っています。
それはあなた次第だけどね :)
乾杯
yewnix@gmail.com