
以下のように、OrderSendで新規注文を行うプログラムを作成してみましたが、GetLastError()でエラー(4055)になってしまいます。
4055は、「カスタムインジケータエラー」とのことですが、どのように修正すればよいのか分かりません。
どうか、ご教示頂きたくよろしくお願い致します。
ちなみに、FXDD(デモ口座)のEURJPY(5分足)でテストしています。
bool EFlg=true;
int start()
{
if(EFlg)
{
EAticket = OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green);
if(EAticket < 0 )
Alert("Order Failed #",GetLastError());
else
Alert("OK!!");
EFlg = false;
}
return(0);
}
No.3ベストアンサー
- 回答日時:
ANo.2 okw201114です
カスタムインジケータから使われたのでしょうか? お気づきになられて良かったです。
私も、ウェブ上にマニュアルの様なものを見つけ..
エラーコードには「トレード サーバーから返されるエラーコード」と「ランタイムエラー」があると知り..
関数ごとのエラーコード表で OrderSend は 4055 ~ 4111と「トレード サーバーから返されるエラーコード」があると知り..
エラーコードが 4055 のみの比較的仕様の小さいSleep()関数をみると..
「Sleep() 関数は、カスタム インディケータから呼び出すことはできません~」とありましたので^^;;
やっぱり英語は苦手です;;
http://www.metasys-seeker.net/MQL4_Reference_ver … <-- エラーコード【Error codes】
http://www.metasys-seeker.net/MQL4_Reference_ver … <-- ランタイムエラー【Runtime errors】
http://www.metasys-seeker.net/MQL4_Reference_ver … <-- 実行待機【Sleep】
PC関係だと長年のナントカがありますからw
そんな私でもネットなど下調べしてたり、参考もなしで実装はしません。
ぜひそうしてください。
業者によっては デモは 1 ロット指定とか、Modify でしか T/P, S/L 設定できない所もあるらしいのですが..
自作インジケータを持っているなんてすごいです。私は自作EAのトレードに呆然としてますまだまだですw
あとわからないとのことで参考になるかですが
ネット検索すると MT4 紹介や、EA/カスタムインジケータの作り方を紹介されているブロブなどがヒットします。
国内の http://jp.forex.com/jp/learn/mt4_expertadvisor.s … やあたりのリンクを読み倒す。というか国内業者はその辺強いかと。
カスタムインジケータ作成経験がおありならば、その場所の親フォルダの "experts" に MA や MACD を使ったサンプルEAがあるので、
テンプレートに使ったり、Tester したりデモで確認したりする。
MT4エディターで公開されているカスタムインジケータや EA を見つけられる。
カスタムインジケータを EA から使用する場合は iCustom 関数を使います。Tester で遅いらしい..
などなど、ただ鵜呑みようなことは危険だと思います。ハイリスクですよね
楽しかったですw
回答ありがとうございます。
マニュアルのSleep関数には、カスタムインジケータから呼び出すことができないことが書いてあるんですね。
OrderSend関数にも書いてあれば、ここまではまらずに済んだかもしれないですね、はぁ…。
なるほど、iCustom関数でカスタムインジケータを使用できるんですね。
この関数は、カスタムインジケータから別のカスタムインジケータを使用する時に、利用したことがあります。
EAからカスタムインジケータを使用するイメージが出来てきました!
いろいろとご教示頂きありがとうございました。
回答内容を何度も読み返して、とても勉強になりました。
FXって、なんだか孤独だなぁと感じることもあり、そういう意味でも回答を頂けてとても嬉しかったです。
ブログで毎日デモ口座の負けトレードをアップしてますが、勝ちトレードをアップできるようにEAの勉強を頑張ろうと思います(笑)
ありがとうございました!
No.2
- 回答日時:
ANo.1 okw201114です
EURJPY(5分足)ですね、80 でエラー(Order Failed #130 invalid stop) 90で OK!! となりました
S/L は数十Pips 離すと思うので 80Point(8Pips) でもなんとか、 でも Stop Level は 40 なのですが。
さて
OrderSend で エラー ”Order Failed #4055 custom indicator error” となる? <--実はこの辺から意味不明です..
4055 custom indicator error とは?
custom indicator とは 追加または自作インジケータのことですよね?
GetLastError() は最後に発生したエラー番号を返す仕様ですが、最後の発生したエラーが 4055 と言う事ですよね?
あなたに思い当たる事がないのであれば「システム障害」レベルと思うので、
まったくないのであればシステム障害とお考えになられた方が良いかと思います。
回答ありがとうございます。
どうやら、基本的なところから間違えているのではないかと思い始めました。
今まで自分でインジケータを作成し表示させて、それを見て別のデモ口座でトレードしてました。
その自作のインジケータの中で自動発注はできないのか?というところから始まりまして、その自作のインジケータの中でOrderSendを実行してみたのです。
上手く発注されないので、余計な部分をすべて省いて、質問時のサンプルコードになりました。
が…、どうやら、自作のインジケータの中でOrderSendを実行すること自体が間違えなのでは?と。
いろいろ調べたところ、自作のインジケータではなく「Expert Advisors」を作成しなければいけないことが分かってきました。
ただ、自作のインジケータを表示し「Expert Advisors」で自動発注(OrderSend)するにはどうすればよいのかわかりません。
今後、まだまだ勉強しなければいけませんが、とりあえず、道は開けたような気がします。
okw201114さん、ありがとうございました!
No.1
- 回答日時:
自分も勉強中なのでトライしてみました..
要は MarketInfo(Symbol(), MODE_STOPLEVEL) で離さなければいけない Point が見れます
結果は 40 でよいはずですが 60 までエラーが出て 70 で Ok でした
環境にも依存すると思うのですが? 念のため Point は 0.001 になります。
以下コピベで確認出来ると思います
#include <stdlib.mqh>
bool EFlg=true;
int start()
{
Comment("MODE_STOPLEVEL=",MarketInfo(Symbol(), MODE_STOPLEVEL), " Point=", Point);
if(EFlg)
{
int EAticket = OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-70*Point,Ask+25*Point,"My order #2",16384,0,Green);
if(EAticket < 0 ){
int check=GetLastError();
Alert("Order Failed #",check, " ",ErrorDescription(check));
}else
Alert("OK!!");
EFlg = false;
}
return(0);
}
回答ありがとうございます。
もう、誰も回答してもらえないのではないかと悲しく思っていたところでした!
早速、コピペしてやってみたのですが、結果は改善しませんでした…。
MODE_STOPLEVEL=40 Point=0.001
は、同じでした。
エラーは、以下のように。
Order Failed #4055 custom indicator error
70をさらに100に増やしたり、ロット数を1にしたり、スリッページを30にしたりもしましたが、ダメでした…。
環境の問題なのでしょうか…。
okw201114も、FXDD(デモ口座)のEURJPY(5分足)の環境でテストをされたのでしょうか?
現在も試行錯誤中ですので、また、アドバイスなどがありましたら、よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- 英語 「名詞 of 名詞」において、どちらも同一人物が主体となったり所有する名詞の適切な各限定詞について 2 2022/08/18 11:32
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リコーimagioneo630 エラーs...
-
Disposeの動き
-
ガス給湯器のエラーコードにつ...
-
MPI
-
fortranで文字列と数値が混在し...
-
ディスク上のサイズの乖離が大...
-
oracle spool SJIS → UTF-8
-
フォーマットについて。
-
Query OK, 0 rows affected
-
クラスタ分析 結果の安定性に...
-
Windows版 pg_dumpの結果をログ...
-
Access2010でリボン等を非表示...
-
tar.gzファイルのリストアについて
-
この様なアプリ作成に適したデ...
-
CSVファイルをBULK INSERTでSQL...
-
PostgresSQLの環境設定について
-
PostgreSQLについて教えてくだ...
-
キャッシュしたクエリを確認したい
-
createdbでいきなりつまづいて...
-
psqlでのリストアの仕方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヤフーショッピングでPayPay支...
-
リコーimagioneo630 エラーs...
-
C#で大量のデータを扱うソフト...
-
トランザクションの開始
-
更新不要はどういう意味なので...
-
ソケットの異常終了について
-
関数引数に対する制限値チェッ...
-
SQLServerへの接続子による違い...
-
エクセルVBA_ADO「ファイアホー...
-
socket のエラー
-
マインクラフトエラー
-
MPI
-
BASP21送信エラーVB.NET
-
CloseHandleのエラーについて
-
正規表現のエラーを区別したい
-
e-Taxで申告書送信ができません
-
データの取り込み
-
トランザクションの開始2
-
URLDownloadToFileについて
-
FDに保存したExcelデータが読み...
おすすめ情報