以前の質問内容からパラメーターをコピーし_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.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;//秒 //秒
No.2
- 回答日時:
まずは安心して下さい。
バグを見つけました。さて、私は先に2つの指摘をしました。
あなたは一つ目の指摘に答えておりません。
(Q)なぜ、最後に3つも}を書いたのですか?
プログラムを書く上でやってはいけない禁じ手ですね。
勝手に文法を作ってはいけません。
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%の確率で、どこかに{}()が足りないか、多すぎるのですから。。。
では、また。
お探しの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ランキング
-
もう一度介入があると思うので...
-
問題です。 ユニバーサル・シー...
-
円為替レート
-
トレーダーっていくら利益出て...
-
私の手法は両建てでも有効なの...
-
昭和には1ドル360円の時代があ...
-
ユーロを円に交換したい
-
為替介入とTTSレート
-
為替介入ですが、予告発表とか...
-
投資詐欺でしょうか? Facebook...
-
円安って日銀がドルを刷れば解...
-
ドルで買い物
-
ドル円がこの間まで150円だった...
-
FX エントリーするとレンジにな...
-
株とFXどちらがいいでしょうか...
-
日本円はなぜ、ほぼ全世界の通...
-
FXトレーダーの法人化
-
FXを始めてみようと思っている...
-
来年の今頃は、1ドル300円にな...
-
FX証券会社からの出金について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2回戦止まりは2回戦は勝ってい...
-
MT4で時間を指定するにはどのよ...
-
mql4のコンパイルエラー箇所の...
-
マネパのストップ(逆指値)の...
-
MT4によるバックテストの信頼性...
-
豊島久道著「FXメタトレーダ...
-
MT4(メタトレーダー)で単純...
-
メタトレーダーでCloseがある値...
-
MT4で取引時間を指定する。
-
Tera Termが途中で切れるのです...
-
80歳の高齢者ですが、金融庁に...
-
MT5のBIT(売り)ASK(買い)のライ...
-
為替データをエクセルにダウン...
-
陽線・陰線が切り替わったらア...
-
ダウ理論の転換に関するインジ...
-
MT4サブウインドウの移動線のク...
-
【MQL4】ZigZagの天底の値の取得
-
mt4のテスターが遅すぎる。
-
FXの日足時系列データをダウン...
-
自動売買(システムトレード)を...
おすすめ情報