OrderSend error 131 エラーの改善策について

 

ストラテジーテスターでバックテストしたところOrderSend error 131のエラーが出ました。

  1. 取引条件の変化: トレードが実行される間に価格や取引条件が変動し、リクエストの実行が不可能になった場合。
  2. 注文タイプや条件の不一致: リクエストされた注文の種類や条件が取引所のルールや設定に違反している場合。
  3. ユーザーのアカウント制限: ユーザーアカウントに設定された制限や制約により、トレードが実行できなかった場合。

が原因のようですが、改善策が分かりません。

分かる方、改善策を教えてもらえないでしょうか?


MT4の自動売買のルールは以下です。


買いエントリー
・200EMAより上にローソク足がある
・ストキャス20以下で%Dが%Kを上抜く
・RSIが40以下になっていること(ローソク足が5本前までになっていればOK)
・上記条件が揃っている時に「buy」でエントリー
・SLはATRの22倍、TPはATRの44倍に指値注文を置く


売りエントリー
・200EMAより下にローソク足がある
・ストキャス80以上で%Kが%Dを下抜く
・RSIが60以上になっていること(ローソク足が5本前までになっていればOK)
・上記条件が揃っている時に「sell」でエントリー
・SLはATRの22倍、TPはATRの44倍に指値注文を置く

資金管理

エントリーする際は、残高の0.03%が損切額になる様に、毎回ロット計算をしてエントリーする

MQL4コードはファイルを添付しています。

宜しくお願い致します。

ファイル:
d5995kz08.mq4  7 kb
 

この1~3の原因はどこに書いてあったのですか?

リファレンスで確認すると、エラー131は Invalid trade volume となっており、注文数量が小さ過ぎる(例えば最小数量0.1なのに0.01の注文を出しているなど)、

または大き過ぎるのどちらかのような気がします。

それと、プログラムに2か所定義済みエラーがありますが、このままでちゃんと動いたのですか?

 
Nagisa Unada #:

この1~3の原因はどこに書いてあったのですか?

リファレンスで確認すると、エラー131は Invalid trade volume となっており、注文数量が小さ過ぎる(例えば最小数量0.1なのに0.01の注文を出しているなど)、

または大き過ぎるのどちらかのような気がします。

それと、プログラムに2か所定義済みエラーがありますが、このままでちゃんと動いたのですか?

1〜3のどれかだとChatGPTから返答がきました!

なるほど!
注文数量なんですね!!
返答ありがとうございます✨

すみません、トライアンドエラーを10回以上繰り返していたので、
最後のエラーは、
'rsiValue' - variable already definedと
'period' - variable already definedでした🙇‍♂️
このエラーは変数名を変えるだけではダメなのでしょうか?
 

変数を変えてもいいんですが、「既に定義済み」と言っているんですから頭の int や double を取り除けばそれでOKです。

あるいは最初に定義しておけば、プログラム途中で定義する必要はありません。

ところで、int period = PERIOD_M15; // 15分足の定数 はプログラム内で使われていない無意味な行です。

 
Nagisa Unada #:

変数を変えてもいいんですが、「既に定義済み」と言っているんですから頭の int や double を取り除けばそれでOKです。

あるいは最初に定義しておけば、プログラム途中で定義する必要はありません。

ところで、int period = PERIOD_M15; // 15分足の定数 はプログラム内で使われていない無意味な行です。

凄いです!!
エラーが消えました😁

何度かエラーの修正が出来ずに挫折していた経験があったので、本当に感謝です🙇‍♂️🙇‍♂️✨

僕にはまだまだ遠い道のりの様な気がしていますが、
NagisaさんはMQL4のプログラミング何年くらいである程度問題なく書ける様になりましたか?
 

2~3ヶ月で書けるようになりました。

と、言うのもそれ以前に Visual Basic をマスターしていましたので。

何か既に習った言語があれば割と簡単だと思いますが、初めての人にはけっこう難しいかもしれません。

 
Nagisa Unada #:

2~3ヶ月で書けるようになりました。

と、言うのもそれ以前に Visual Basic をマスターしていましたので。

何か既に習った言語があれば割と簡単だと思いますが、初めての人にはけっこう難しいかもしれません。

なるほど!
他のプログラミング言語を習得されてたんですね^ ^

今のところエラーしか出ないくて、まだバックテスト出来なことないですが、スクールなどに入って、めげずに本気で取り組んでいきたいと思います🫡
返答ありがとうございました🙇‍♂️