初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 176 1...169170171172173174175176177178179180181182183...260 新しいコメント Zelimhannahal00 2019.06.16 22:46 #1751 みんな、EAを修正するのを手伝ってくれ。注文を確認するのではなく、最初のシグナルで、入金額を使い切るまで、止まることなく買い続けます。ありがとうございました。 //+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2012, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2019, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ extern double Lots = 1; extern int TakeProfit = 300; extern int StopLoss = 50; extern int Magic = 111; extern int Slippage = 3; //+------------------------------------------------------------------+ extern string TMA = "Параметры индикатора TMA"; extern string TimeFrame = "current time frame"; extern int HalfLength = 56; extern int Price = PRICE_CLOSE; extern double ATRMultiplier = 2.0; extern int ATRPeriod = 100; extern bool Interpolate = true; //+------------------------------------------------------------------+ double PriceHigh,PriceLow,SL,TP,OrderMagicNumber; int ticket; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if(Digits==3 || Digits==5) { TakeProfit *= 10; StopLoss *= 10; Slippage *= 10; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { PriceHigh= iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0); PriceLow = iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0); if(CountSell()==0 && Bid>=PriceHigh) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"ТМА",Magic,0,Red); if(ticket>0) { SL = NormalizeDouble(Bid + StopLoss*Point, Digits); TP = NormalizeDouble(Bid - TakeProfit*Point, Digits); if(OrderSelect(ticket,SELECT_BY_TICKET)) if(!OrderModify(ticket,OrderOpenPrice(),SL,TP,0)) Print("Ошибка модификации ордера на продажу"); } else Print("Ошибка открытия ордера на продажу"); } if(CountBuy()==0 && Ask<=PriceLow) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"ТМА",Magic,0,Blue); if(ticket>0) { TP = NormalizeDouble(Ask + TakeProfit*Point, Digits); SL = NormalizeDouble(Ask - StopLoss*Point, Digits); if(OrderSelect(ticket,SELECT_BY_TICKET)) if(!OrderModify(ticket,OrderOpenPrice(),SL,TP,0)) Print("Ошибка модификации ордера на покупку"); } else Print("Ошибка открытия ордера на покупку"); } if(Ask<=PriceLow && CountSell()>0) { for(int i=OrdersTotal() -1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderMagicNumber()==Magic && OrderType()==OP_SELL) if(!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Black)) Print("Ошибка закрытия ордера на продажу"); } } } if(Bid>=PriceHigh && CountBuy()>0) { for(i=OrdersTotal() -1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderMagicNumber()==Magic && OrderType()==OP_BUY) if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Black)) Print("Ошибка закрытия ордера на покупку"); } } } } //+------------------------------------------------------------------+ int CountSell() { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber && Magic && OrderType()==OP_SELL) count++; } } return(count); } //+------------------------------------------------------------------+ int CountBuy() { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber && Magic && OrderType()==OP_BUY) count++; } } //+------------------------------------------------------------------+ Artyom Trishkin 2019.06.17 01:48 #1752 Zelimhannahal00:みんな、EAを修正するのを手伝ってくれ。注文を確認するのではなく、最初のシグナルで、入金額を使い切るまで、止まることなく買い続けます。皆さん、よろしくお願いします。 コードスタイラーを使って、コードエディター上で普通に書式設定することができます。Ctrl + < フォーマットしてあげましたよ~これで普通に読めますね。 Alekseu Fedotov 2019.06.17 12:07 #1753 Zelimhannahal00:みんな、EAを修正するのを手伝ってくれ。注文を確認するのではなく、最初のシグナルで、入金額を使い切るまで、止まることなく買い続けます。皆さん、よろしくお願いします。 正しく認識されていますね、エラーはチェックポジション機能です //+------------------------------------------------------------------+ int CountSell() { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber() == Magic && OrderType()==OP_SELL) count++; } } return(count); } //+------------------------------------------------------------------+ int CountBuy() { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber() == Magic && OrderType()==OP_BUY) count++; } } //+----------------------赤色でハイライトし、修正しました。 訂正させていただきました。 Zelimhannahal00 2019.06.17 15:15 #1754 Alekseu Fedotov:位置確認機能の誤りを正しく認識しました。 赤色でハイライトされ、修正されました。 そんな感じです。 修正しました、相変わらずです。問題はまだある。 Vladislav Andruschenko 2019.06.17 16:53 #1755 Zelimhannahal00: 修正しました、相変わらずです。問題はまだある。//+------------------------------------------------------------------+ int CountSell() { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber() == Magic && OrderType()==OP_SELL) count++; } } return(count); } //+------------------------------------------------------------------+ int CountBuy() { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber() == Magic && OrderType()==OP_BUY) count++; } } return(count); 中のコードを全部コピーしたのですか? Zelimhannahal00 2019.06.17 21:08 #1756 Vladislav Andruschenko: そこにあるコードをすべてコピーしたのでしょうか?間違って全コードをコピーしたわけではありません。そこでreturn(count)でOKです。 } そうやって、当然のようにコードが終わっていく。コンパイル時のエラーや警告は全くありません。関数を間違えたのだろう、どこを間違えたのかわからない。上記で教えていただいたように修正しました。私もエラーはありませんが、アドバイザー自体は同じように動作します(最初の信号は、それは1ロットセットなど与えられたロット、全体の預金のために購入し、彼は十分な預金である限り、200以上の案件の1ロットを購入します)。しかし、信号が正しく、買いも正しく、ただたくさん) Alekseu Fedotov 2019.06.18 05:13 #1757 Zelimhannahal00:間違って全コードをコピーしたわけではありません。return(count)でいいんです。 } そうやって、当然のようにコードが終わっていく。コンパイル時のエラーや警告は全くありません。関数を間違えたのだろう、どこを間違えたのかわからない。上記で教えていただいたように修正しました。私もエラーはありませんが、アドバイザー自体は同じように動作します(最初の信号は、それは1ロットセットなど与えられたロット、全体の預金のために購入し、彼は十分な預金である限り、200以上の案件の1ロットを購入します)。しかし、信号が正しく、買いも正しく、しかし多く)確認し、修正しました。 ファイル: ProjectName.mq4 11 kb Alexander Fedosov 2019.06.18 20:55 #1758 日付と日付の間のロウソクの本数は、どのように求めるのですか? Igor Makanu 2019.06.18 21:10 #1759 Alexander Fedosov: 日付と日付の間にあるロウソクの本数を調べるには? TFが同期している場合、CopyXXXX()関数はすべて: 必要な時間間隔の開始日と終了日を参照する。 intCopyTime() stringsymbol_name,// シンボル名ENUM_TIMEFRAMEStimeframe,// 期間datetimestart_time,// どの日付からか。 datetimestop_time,// 何日までか。 datetimetime_array[]//開始時刻をコピーするための配列); 戻り値 コピーされた配列の要素 数,あるいはエラーの場合は -1. iBarShift()を使用すると、2つのバーを時間単位で見つけることができます。 週末を含むカウントバー Questions from Beginners MQL4 エラー、バグ、質問 Alexander Fedosov 2019.06.18 21:14 #1760 Igor Makanu: TFが同期している場合、CopyXXXX()関数はすべて: 必要な時間間隔の開始日と終了日を参照する。 intCopyTime() stringsymbol_name,// シンボル名ENUM_TIMEFRAMEStimeframe,// 期間datetimestart_time,//何時からの ものか datetimestop_time,// 何日までか。 datetimetime_array[]//開始時刻をコピーするための配列); 戻り値 コピーされた配列の要素 数,あるいはエラーの場合は -1. それはおかしいな...。以前はmt4にこのような機能はなかったと記憶しています。5にも追加されたのですか? 1...169170171172173174175176177178179180181182183...260 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
みんな、EAを修正するのを手伝ってくれ。注文を確認するのではなく、最初のシグナルで、入金額を使い切るまで、止まることなく買い続けます。ありがとうございました。
みんな、EAを修正するのを手伝ってくれ。注文を確認するのではなく、最初のシグナルで、入金額を使い切るまで、止まることなく買い続けます。皆さん、よろしくお願いします。
コードスタイラーを使って、コードエディター上で普通に書式設定することができます。Ctrl + <
フォーマットしてあげましたよ~これで普通に読めますね。
みんな、EAを修正するのを手伝ってくれ。注文を確認するのではなく、最初のシグナルで、入金額を使い切るまで、止まることなく買い続けます。皆さん、よろしくお願いします。
正しく認識されていますね、エラーはチェックポジション機能です
赤色でハイライトし、修正しました。
訂正させていただきました。
位置確認機能の誤りを正しく認識しました。
赤色でハイライトされ、修正されました。
そんな感じです。
修正しました、相変わらずです。問題はまだある。
中のコードを全部コピーしたのですか?
そこにあるコードをすべてコピーしたのでしょうか?
間違って全コードをコピーしたわけではありません。そこでreturn(count)でOKです。
}
そうやって、当然のようにコードが終わっていく。コンパイル時のエラーや警告は全くありません。関数を間違えたのだろう、どこを間違えたのかわからない。上記で教えていただいたように修正しました。私もエラーはありませんが、アドバイザー自体は同じように動作します(最初の信号は、それは1ロットセットなど与えられたロット、全体の預金のために購入し、彼は十分な預金である限り、200以上の案件の1ロットを購入します)。しかし、信号が正しく、買いも正しく、ただたくさん)
間違って全コードをコピーしたわけではありません。return(count)でいいんです。
}
そうやって、当然のようにコードが終わっていく。コンパイル時のエラーや警告は全くありません。関数を間違えたのだろう、どこを間違えたのかわからない。上記で教えていただいたように修正しました。私もエラーはありませんが、アドバイザー自体は同じように動作します(最初の信号は、それは1ロットセットなど与えられたロット、全体の預金のために購入し、彼は十分な預金である限り、200以上の案件の1ロットを購入します)。しかし、信号が正しく、買いも正しく、しかし多く)
確認し、修正しました。
日付と日付の間にあるロウソクの本数を調べるには?
TFが同期している場合、CopyXXXX()関数はすべて:
必要な時間間隔の開始日と終了日を参照する。
intCopyTime()
stringsymbol_name,// シンボル名
ENUM_TIMEFRAMEStimeframe,// 期間
datetimestart_time,// どの日付からか。
datetimestop_time,// 何日までか。
datetimetime_array[]//開始時刻をコピーするための配列
);
戻り値
コピーされた配列の要素 数,あるいはエラーの場合は -1.
iBarShift()を使用すると、2つのバーを時間単位で見つけることができます。
TFが同期している場合、CopyXXXX()関数はすべて:
必要な時間間隔の開始日と終了日を参照する。
intCopyTime()
stringsymbol_name,// シンボル名
ENUM_TIMEFRAMEStimeframe,// 期間
datetimestart_time,//何時からの ものか
datetimestop_time,// 何日までか。
datetimetime_array[]//開始時刻をコピーするための配列
);
戻り値
コピーされた配列の要素 数,あるいはエラーの場合は -1.