MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 334 1...327328329330331332333334335336337338339340341...1953 新しいコメント 削除済み 2017.10.10 13:48 #3331 Top2n: これはどうでしょう?if( インジケータバーの数== EAバーの数 ) Mikhail Toptunov 2017.10.10 14:55 #3332 Alexey Kozitsyn:if( インジケータバーの数== EAバーの数 )では、EAのインジケータバーの本数はどうすればいいのでしょうか? 削除済み 2017.10.10 14:56 #3333 Top2n: では、EAでインジケーターのバー数を取得するにはどうすればよいのでしょうか?BarsCalculated()。 kirill1405 2017.10.10 16:21 #3334 こんにちは、return関数の括弧の中に何を書けばいいのか教えてください。古いバージョンでは何も書かなくても良いが、新しいバージョンでは何かを書く必要がある例として、EAの部分のスクリーンショットをお送りします。 ファイル: yzo9qp_ednv89_2017-10-10_3_18.20.04.png 26 kb 削除済み 2017.10.10 16:40 #3335 kirill1405:こんにちは、return関数の括弧の中に何を書けばいいのか教えてください。古いバージョンでは何も書かなくても良いが、新しいバージョンでは何かを書く必要がある例として、EAの部分のスクリーンショットをお送りします。 関数の型に対応する値/変数を括弧書きで記述する必要があります。関数がboolの場合、括弧内にはtrueかfalse、またはbool型の 変数を指定する必要があります。その他の関数型についても同様です。関数がvoidの場合は、returnするだけです。 kirill1405 2017.10.10 16:42 #3336 Alexey Kozitsyn: 関数型に対応する値・変数を括弧書きで記述する。関数がboolの場合、trueまたはfalse、またはbool型の 変数を括弧で囲んでください。他の関数タイプの場合 - 同様。関数がvoidの場合は、returnするだけです。私が落とした写真から、リターン関数に必要なものを教えてください。をクリックすると、より良いイメージを得ることができます。ありがとうございました。 削除済み 2017.10.10 16:44 #3337 kirill1405: 私が落とした写真から、リターン関数に必要なものを教えてください。をクリックすると、より良いイメージを得ることができます。ありがとうございました。 先ほども言ったように、正しい値を返すためには、関数の型を知る必要があります。しかも、写真ではわからない。 kirill1405 2017.10.10 16:55 #3338 ご迷惑でなければ、どうぞ。 ファイル: lmdf9hx.mq4 10 kb 削除済み 2017.10.10 17:38 #3339 kirill1405:ご迷惑でなければ、どうぞ。 SRCボタンからコードを貼り付け、ダウンロードして見て削除する欲求はありません。 kirill1405 2017.10.10 17:59 #3340 Alexey Kozitsyn: SRCボタンからコードを貼り付け、ダウンロードして見て削除する欲求はありません。extern double StopLoss = 100; extern double TakeProfit = 400; extern int Period_MA_1 = 100; extern int Period_MA_2 = 150; extern double Rasst = 40; extern double Lots = 0.5; bool Work = true; string Symb; //------------------------------------------------2 int start() { int Total, //количество ордеров в окне Tip = -1, Ticket; // тип выбранного ордера double MA_1_t, // текущее значение средней №1 MA_2_t, // текущее значение средней №2 Lot, // количество лотов в выбранном ордере Lts, // Количество лотов в открыв. ордере Min_Lot, // минимальное количество лотов Step, // шаг изменения размера лота Free, // текущие свободные средства One_Lot, // стоимость одного лота Price, // цена выбранного ордера SL, // стоплосс выбранного ордера TP; // тейкпрофит выбранного ордера bool Ans = false, Cls_B = false, Cls_S = false, Opn_B = false, Opn_S = false; //---------------------------------------------- 3 // предварительная обработка if (Bars < Period_MA_2) { Alert ("Недостаточно баров в окне. Эксперт не работает"); } return; if (Work==false) { Alert ("Критическая ошибка. Эксперт не работает"); } return; //здесь можно указать разные параметры например задать время работы эксперта //---------------------------------------------- 4 // учет ордеров Symb = Symbol(); Total =0; for (int i=1;i<=OrdersTotal();i++) { if (OrderSelect(i-1,SELECT_BY_POS)==true) { if (OrderSymbol()!= Symb) continue; if ( OrderType()>1) { Alert ("Обнаружен отложенный ордер. Эксперт не работает"); return ; } Total++; //счетчик рыночных ордеров if (Total>1) { Alert ("Несколько рыночных ордеров. Эксперт не работает."); return ; } Ticket=OrderTicket(); Tip=OrderType(); Price=OrderOpenPrice(); SL=OrderStopLoss(); TP=OrderTakeProfit(); Lot=OrderLots(); } } // Торговые критерии MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_EMA,PRICE_CLOSE,0); MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_EMA,PRICE_CLOSE,0); if (MA_1_t>MA_2_t+Rasst*Point) { Opn_B=true; Cls_S=true; } if (MA_1_t<MA_2_t-Rasst*Point) { Opn_S=true; Cls_B=true; } //-------------------------------------------- // закрытие ордеров while (true) { if (Tip==0 && Cls_B==true) { Alert ("Попытка закрыть Buy ",Ticket,"ожидание ответа.."); RefreshRates(); Ans=OrderClose(Ticket,Lot,Bid,2); if (Ans==true) { Alert ("Закрыт ордер Buy" ,Ticket); break; } if (Fun_Error(GetLastError())==1) continue; return; } if (Tip==1 && Cls_S==true) { Alert ("Попытка закрыть Sell ",Ticket,"ожидание ответа.."); RefreshRates(); Ans=OrderClose(Ticket,Lot,Ask,2); if (Ans==true) { Alert ("Закрыт ордер Sell" ,Ticket); break; } if (Fun_Error(GetLastError())==1) continue; return; } break; } //------------------------------------------------- // расчет размера позиций RefreshRates(); Min_Lot=MarketInfo(Symb,MODE_MINLOT); Free = AccountFreeMargin(); One_Lot = MarketInfo(Symb,MODE_MARGINREQUIRED); Step = MarketInfo(Symb,MODE_LOTSTEP); if (Lots>0) Lts=Lots; if (Lts<Min_Lot) Lts=Min_Lot; if (Lts*One_Lot<Free) { Alert ("Не хватает денежных средств на ",Lts," лотов"); return; } //-------------------------------------------- // блок открытия ордеров while (true) { if (Total==0 && Opn_B==true) { RefreshRates(); SL=Bid-New_Stop(StopLoss)*Point; TP=Bid+New_Stop(TakeProfit)*Point; Alert ("Попытка открыть ордер BUY. Ожидаем ответа.."); Ticket = OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP); if (Ticket>0) { Alert (" Открыт ордер BUY" ,Ticket); return ; } if (Fun_Error(GetLastError())==1) continue; return ; } if (Total==0 && Opn_S==true) { RefreshRates(); SL=Ask-New_Stop(StopLoss)*Point; TP=Ask+New_Stop(TakeProfit)*Point; Alert ("Попытка открыть ордер Sell. Ожидаем ответа.."); Ticket = OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP); if (Ticket>0) { Alert (" Открыт ордер Sell" ,Ticket); return ; } if (Fun_Error(GetLastError())==1) continue; return ; } break; } //----------------------------------------------------------- return; } //--------------------------------------------------------- int Fun_Error (int Error) { switch (Error) { default : Alert ("Возникла ошибка ",Error); return(0); } } //------------------------------------------------------------- int New_Stop (int Parametr) { int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL); if (Parametr<Min_Dist) { Parametr=Min_Dist; Alert ("Увеличена дистанция стоп приказа"); } return(Parametr); } //------------------------------------------------------------ 1...327328329330331332333334335336337338339340341...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これはどうでしょう?
if( インジケータバーの数== EAバーの数 )
if( インジケータバーの数== EAバーの数 )
では、EAのインジケータバーの本数はどうすればいいのでしょうか?
では、EAでインジケーターのバー数を取得するにはどうすればよいのでしょうか?
こんにちは、return関数の括弧の中に何を書けばいいのか教えてください。
古いバージョンでは何も書かなくても良いが、新しいバージョンでは何かを書く必要がある
例として、EAの部分のスクリーンショットをお送りします。
こんにちは、return関数の括弧の中に何を書けばいいのか教えてください。
古いバージョンでは何も書かなくても良いが、新しいバージョンでは何かを書く必要がある
例として、EAの部分のスクリーンショットをお送りします。
関数型に対応する値・変数を括弧書きで記述する。関数がboolの場合、trueまたはfalse、またはbool型の 変数を括弧で囲んでください。他の関数タイプの場合 - 同様。関数がvoidの場合は、returnするだけです。
私が落とした写真から、リターン関数に必要なものを教えてください。
をクリックすると、より良いイメージを得ることができます。
ありがとうございました。
私が落とした写真から、リターン関数に必要なものを教えてください。
をクリックすると、より良いイメージを得ることができます。
ありがとうございました。
ご迷惑でなければ、どうぞ。
ご迷惑でなければ、どうぞ。
SRCボタンからコードを貼り付け、ダウンロードして見て削除する欲求はありません。