![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以前の質問内容からパラメーターをコピーし_2にしてからstart関数内に
同じようにコピーしましたが、2回目のエントリーの後、時間通りに決済ができません。
どなたか対策案教えてください。ここまでできるようになりましたが本当に困っております。
-----------------------------
int start()
{
if(OrdersTotal() == 0){
if((TimeHour(TimeCurrent()) == OrderHour || CheckOrderHour == false)&&(TimeMinute(TimeCurrent()) == OrderMinute || CheckOrderMinute == false) &&(TimeSeconds(TimeCurrent()) == OrderSeconds || CheckOrderSeconds == false))
{
if(Cmd == OP_BUY){
OrderSend(Symbol(),Cmd,Lots,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Red);
return(0);
}
if(Cmd == OP_SELL){
OrderSend(Symbol(),Cmd,Lots,Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Blue);
return(0);
}
}
}
if((TimeHour(TimeCurrent()) == CloseHour || CheckCloseHour == false)&&(TimeMinute(TimeCurrent()) == CloseMinute || CheckCloseMinute == false)&&(TimeSeconds(TimeCurrent()) == CloseSeconds || CheckCloseSeconds == false))
{
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false)
{
break;
}
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType() == OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow);
return(0);
}
if(OrderType() == OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Lime);
return(0);
}
}
}
}
if(OrdersTotal() == 0){
if((TimeHour(TimeCurrent()) == OrderHour_2 || CheckOrderHour_2 == false)&&(TimeMinute(TimeCurrent()) == OrderMinute_2 || CheckOrderMinute_2 == false) &&(TimeSeconds(TimeCurrent()) == OrderSeconds_2 || CheckOrderSeconds_2 == false))
{
if(Cmd_2 == OP_BUY){
OrderSend(Symbol(),Cmd_2,Lots_2,Ask,Slippage_2,Ask-StopLoss_2*Point,Ask+TakeProfit_2*Point,"",MagicNumber_2,0,Red);
return(0);
{
if(Cmd_2 == OP_SELL){
OrderSend(Symbol(),Cmd_2,Lots_2,Bid,Slippage_2,Bid+StopLoss_2*Point,Bid-TakeProfit_2*Point,"",MagicNumber_2,0,Blue);
return(0);
}
}
}
if((TimeHour(TimeCurrent()) == CloseHour_2 || CheckCloseHour_2 == false)&&(TimeMinute(TimeCurrent()) == CloseMinute_2 || CheckCloseMinute_2 == false)&&(TimeSeconds(TimeCurrent()) == CloseSeconds_2 || CheckCloseSeconds_2 == false))
{
for(int s = 0; s < OrdersTotal(); s++)
{
if(OrderSelect(s,SELECT_BY_POS,MODE_TRADES) == false)
{
break;
}
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_2)
{
if(OrderType() == OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage_2,Yellow);
return(0);
}
if(OrderType() == OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage_2,Lime);
return(0);
}
}
}
}
return(0);
}
}
}
No.3ベストアンサー
- 回答日時:
}を重ねた理由も分かりますので、もったいぶらずにお話ししますね。
バグの箇所は、
if(Cmd_2 == OP_BUY){
OrderSend(Symbol(),Cmd_2,Lots_2,Ask,Slippage_2,Ask-StopLoss_2*Point,Ask+TakeProfit_2*Point,"",MagicNumber_2,0,Red);
return(0);
{
の最後のカッコが逆になっているのです。正しくは、}ですね。
このバグが分からなかったため、プログラムの最後に}を重ねて辻褄を合わせたのだと思います。
あなたにとっては残念ながら、それでエラーが出なくなってしまったのですね。
さて、
コンパイル時によく{}や()関係のエラーが出ますが、徒にカッコを増やして様子を見るのではなく、プログラム自体をつぶさに観察してバグの発見に努めましょう。
簡単なことです。99%の確率で、どこかに{}()が足りないか、多すぎるのですから。。。
では、また。
No.2
- 回答日時:
まずは安心して下さい。
バグを見つけました。さて、私は先に2つの指摘をしました。
あなたは一つ目の指摘に答えておりません。
(Q)なぜ、最後に3つも}を書いたのですか?
プログラムを書く上でやってはいけない禁じ手ですね。
勝手に文法を作ってはいけません。
No.1
- 回答日時:
(1)なぜ、最後に}が3つも並んでいるんでしょうか?
(2)見たところ、上記を除き課題が見受けられません。
できればEA全体を掲示できませんか?
この回答への補足
いつも相談に乗って頂きありがとうございます。
文字数の関係でパラメーターを載せる事が出来ませんでしたが、
以下パラメーターを載せますので前のプログラムと合わせて見て下さい。
宜しくお願いします。
-----------------------------------------------------
extern string X = "Basic Settings"; //基本設定
extern int MagicNumber = 1001; //マジックナンバー
extern double TakeProfit = 150; //リミット[pips]
extern double StopLoss = 150; //ストップ[pips]
extern double Lots = 0.1; //ロットサイズ
extern int Cmd = OP_BUY; //エントリー方法[OP_BUY/OP_SELL]
extern int Slippage = 30; //スリッページ
extern string XX = "Order Settings"; //新規注文設定
extern bool CheckOrderHour = true; //時間の判定有無
extern int OrderHour = 1; //時間
extern bool CheckOrderMinute = true; //分の判定有無
extern int OrderMinute = 5; //分
extern bool CheckOrderSeconds = true; //秒の判定有無
extern int OrderSeconds = 0; //秒
extern string XXX = "Close Settings"; //決済注文設定
extern bool CheckCloseHour = true; //時間の判定有無
extern int CloseHour = 1;//時 //時間
extern bool CheckCloseMinute = true; //分の判定有無
extern int CloseMinute = 10;//分 //分
extern bool CheckCloseSeconds = true; //秒の判定有無
extern int CloseSeconds = 0;//秒 //秒
extern string X_2 = "Basic Settings"; //基本設定
extern int MagicNumber_2 = 1001; //マジックナンバー
extern double TakeProfit_2 = 150; //リミット[pips]
extern double StopLoss_2 = 150; //ストップ[pips]
extern double Lots_2 = 0.1; //ロットサイズ
extern int Cmd_2 = OP_BUY; //エントリー方法[OP_BUY/OP_SELL]
extern int Slippage_2 = 30; //スリッページ
extern string XX_2 = "Order Settings"; //新規注文設定
extern bool CheckOrderHour_2 = true; //時間の判定有無
extern int OrderHour_2 = 2; //時間
extern bool CheckOrderMinute_2 = true; //分の判定有無
extern int OrderMinute_2 = 5; //分
extern bool CheckOrderSeconds_2 = true; //秒の判定有無
extern int OrderSeconds_2 = 0; //秒
extern string XXX_2 = "Close Settings"; //決済注文設定
extern bool CheckCloseHour_2 = true; //時間の判定有無
extern int CloseHour_2 = 2;//時 //時間
extern bool CheckCloseMinute_2 = true; //分の判定有無
extern int CloseMinute_2 = 10;//分 //分
extern bool CheckCloseSeconds_2 = true; //秒の判定有無
extern int CloseSeconds_2 = 0;//秒 //秒
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
為替 トランプが再選したらドル...
-
ドル 両替
-
YouTubeとか書籍でFXで五万円を...
-
円が紙くずになるとニュースで...
-
政府、日銀による為替介入のせ...
-
ブビンガを始めとしたバイナリ...
-
株式投資で億り人になって風俗...
-
FXでの借金って、お金は銀行や...
-
円安から円高になるのですか? ...
-
LINEグループのFX詐欺(疑い)...
-
これってなんでこんな値動きを...
-
ドルで買い物
-
AIとFX
-
FXを始めてみようと思っている...
-
トランプ氏が大統領に当選した...
-
円が1ドル100円くらいに戻る事...
-
もしトランプ大統領になったら...
-
ドル円がこの間まで150円だった...
-
ドル建保険の税金
-
今、円安ですけど なんで韓国と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2回戦止まりは2回戦は勝ってい...
-
mql4のコンパイルエラー箇所の...
-
MT4で時間を指定するにはどのよ...
-
MT4のEAで通貨ペア毎に最...
-
トレーディングストップは利用...
-
MT4におけるトレーリングス...
-
【FX】MT4にてプログラムを作成...
-
FXの自動売買で大儲けした人...
-
FX 最近、エントリーチャンス少...
-
MT4で取引時間を指定する。
-
MT4の売買シグナルをメール受信...
-
MT4 ボリンジャーバンドタッチ...
-
ポジションを同時に2個持つの...
-
2回目のエントリーで時間通りに...
-
メタトレーダ4で自動売買をした...
-
豊島久道著「FXメタトレーダ...
-
MT4によるバックテストの信頼性...
-
メタトレーダーでCloseがある値...
-
Tera Termが途中で切れるのです...
-
為替データをエクセルにダウン...
おすすめ情報