MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 500 1...493494495496497498499500501502503504505506507...1953 新しいコメント Ihor Herasko 2018.03.23 18:13 #4991 Konstantin Seredkin:私は例を挙げただけで、このボタンに載せると良いアルゴリズムは他にもたくさんあります。スプレッドが広がり、ボタンが押され、携帯電話にテキストメッセージが来て、ロボットが停止しているとか、4台のロボットが口座で取引している、5台目は口座のマージンをコントロールしている、マージンが設定値まで下がると、自動取引を切り、私が来て、何が、どこでドローダウンしているのかを見るまで全てのロボットが吸い込まれるのです。しかし、チャートからロボットを削除することは、ウサギに対する大砲である...ボタンは、決められたアルゴリズムによってすべてのロボットを殺すことができる複雑な解決策である。 mql5の解決策をどこかで見たことがあるのですが、見当たりません。それが、抜本的な解決策だと言っているのです。正しい解決策は、Expert Advisorのコードを変更し、特定の状況下で、取引アクションとそれに関連するすべてのものを実行しないようにすることです。例えば、スプレッドコントロールは初歩的なものです。 void OnTick() { double fPoint = Point(); if (fPoint <= 0.0) return; int nSpread = int(MathRound((Ask - Bid) / fPoint)); if (nSpread > 50) return; ... Действия советника при нормальном спреде } Ihor Herasko 2018.03.23 18:20 #4992 さて、オートトレードボタンは、Ctrl+Eをエミュレートすることで押下/解除が可能です。しかし、先ほども言ったように、これはWinAPIによるものです。 #include <WinUser32.mqh> #define VK_CONTROL 0x11 #define KEY_CODE 'E' void PressOrReleaseAutotrade() { keybd_event(VK_CONTROL, 0, 0, 0); keybd_event(KEY_CODE, 0, 0, 0); keybd_event(KEY_CODE, 0, 2, 0); keybd_event(VK_CONTROL, 0, 2, 0); } 削除済み 2018.03.23 21:52 #4993 Ihor Herasko:さて、オートトレードボタンは、Ctrl+Eをエミュレートすることで押下/解除が可能です。でも、これってやっぱり、すでにWinAPIを使っているんですよね。 ありがとうございます!あと、スマイリーフェイスを悲しませるなんて......(笑)。 Konstantin Seredkin 2018.03.24 00:53 #4994 Ihor Herasko:さて、Ctrl+Eをエミュレートすることで、AutoTradeボタンを押したり外したりすることができます。しかし、やはりこれはWinAPIでの話です。 そのとおりで、痛快なほどシンプルな方法だと思い、このライブラリの存在をすっかり忘れていました。ありがとう、これで好きなことができるようになった Maxim Khrolenko 2018.03.24 09:27 #4995 長方形を描く MQL4スクリプト(下記コード)を作ったのですが(下記写真)、ここで問題が発生しました。破線 STYLE_DOT は幅 1 のみ動作し、2 以上で実線が描画されます。私の間違いがどこにあるのか、それとも何か隠されているのか、教えていただけませんか? #property strict void OnStart() { //--- RectCreate("rect1",Time[1],Low[1],Time[10],High[10],clrYellow,STYLE_DOT, 1, false); RectCreate("rect2",Time[11],Low[11],Time[20],High[20],clrRed, STYLE_DOT, 2, false); //--- Sleep(20*1000); ObjectsDeleteAll(0); } //--- Function creates rectangle void RectCreate(const string f_name, // rectangle name datetime f_time1, // first point time double f_price1, // first point price datetime f_time2, // second point time double f_price2, // second point price const color f_color, // rectangle color const ENUM_LINE_STYLE f_style, // style of rectangle lines const int f_width, // width of rectangle lines const bool f_fill) // filling rectangle with color { if(ObjectCreate(0,f_name,OBJ_RECTANGLE,0,f_time1,f_price1,f_time2,f_price2)) { ObjectSetInteger(0,f_name,OBJPROP_COLOR,f_color); ObjectSetInteger(0,f_name,OBJPROP_STYLE,f_style); ObjectSetInteger(0,f_name,OBJPROP_WIDTH,f_width); ObjectSetInteger(0,f_name,OBJPROP_FILL,f_fill); ObjectSetInteger(0,f_name,OBJPROP_BACK,false); ObjectSetInteger(0,f_name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,f_name,OBJPROP_SELECTED,false); } } Artyom Trishkin 2018.03.24 09:29 #4996 Maxim Khrolenko:長方形を描く MQL4スクリプト(下記コード)を作ったのですが(下記写真)、ここで問題が発生しました。破線 STYLE_DOT は幅 1 のみ動作し、2 以上で実線が描画されます。私の間違いがどこにあるのか、それとも何か隠されているのか、教えていただけませんか? そして手動で描画し、スタイルと厚みを変更しようとした?そして、これらの実験からどのような結論が導き出されるのでしょうか。 Maxim Khrolenko 2018.03.24 10:24 #4997 Artyom Trishkin: 手動で描画してスタイルや太さを変えてみましたか?そして、これらの実験からどのような結論が導き出されるのでしょうか。答えが見つかったような気がします。ここには「行書体」と書かれています。線の太さが0または1インチのときのみ使用されます。幅2以上の線が実線以外ではうまくいかないのは、このためでしょう。 Konstantin Erin 2018.03.24 18:35 #4998 Maxim Khrolenko:答えが見つかったような気がします。ここには「行書体」と書かれています。線の太さが0または1 "の時のみ使用します。実線以外の線が2以上の太さで効かないのは、このためでしょう。まさにその通りです。私も経験あります。 Вадим Мотеюнас 2018.03.24 18:49 #4999 皆さん、アドバイスをお願いします。私は、最後に開いたポジションのバー 番号または- 1を返すキムから関数を取りました。 int NumberOfBarOpenLastPos(string sym="",int tf=0,int op=-1,int mn=-1) { datetime oot; int i,k=OrdersTotal(); if(sym=="") sym=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==sym) { if(OrderType()==OP_BUY || OrderType()==OP_SELL || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT) { if(op<0 || OrderType()==op) { if(mn<0 || OrderMagicNumber()==mn) { if(oot<OrderOpenTime()) oot=OrderOpenTime(); } } } } } } return(iBarShift(sym, tf, oot, True)); } この関数を呼び出して、条件を書くと if(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2]) { Comment("цена входа = ",DoubleToStr(Low[2],Digits)); if(NumberOfBarOpenLastPos("",0,-1,-1)!=0)//вызвал здесь ticket=OrderSend(Symbol(),OP_SELLLIMIT,0.1,Low[2],2,0,0,magic,0); if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) TP=NormalizeDouble(OrderOpenPrice()-tp*Point,Digits); SL=NormalizeDouble(OrderOpenPrice()+sl*Point,Digits); modify=OrderModify(ticket,OrderOpenPrice(),SL,TP,0); } Printを 見ると、この関数は-1を返しています。最初は注文がないと思いましたが、しばらくすると注文が再び現れ、同じバーでストップの後に取引が開始されました。 dimkh87 2018.03.24 19:54 #5000 こんにちは。MT4とMT5で、1つの商品のチャートを異なるTFでオーバーレイし、これらのTFのための指標を表示することが可能かどうかご存知ですか?例えば、EUR/USDペアの 3つのチャートを1つのウィンドウに表示し、日足、4時間足、1時間足のTFを表示し、さらにこれらのTFのスライドインジケーターを重ね合わせたいと思います。可能なのでしょうか?よろしくお願いします。 1...493494495496497498499500501502503504505506507...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私は例を挙げただけで、このボタンに載せると良いアルゴリズムは他にもたくさんあります。スプレッドが広がり、ボタンが押され、携帯電話にテキストメッセージが来て、ロボットが停止しているとか、4台のロボットが口座で取引している、5台目は口座のマージンをコントロールしている、マージンが設定値まで下がると、自動取引を切り、私が来て、何が、どこでドローダウンしているのかを見るまで全てのロボットが吸い込まれるのです。しかし、チャートからロボットを削除することは、ウサギに対する大砲である...ボタンは、決められたアルゴリズムによってすべてのロボットを殺すことができる複雑な解決策である。
mql5の解決策をどこかで見たことがあるのですが、見当たりません。
それが、抜本的な解決策だと言っているのです。正しい解決策は、Expert Advisorのコードを変更し、特定の状況下で、取引アクションとそれに関連するすべてのものを実行しないようにすることです。例えば、スプレッドコントロールは初歩的なものです。
さて、オートトレードボタンは、Ctrl+Eをエミュレートすることで押下/解除が可能です。しかし、先ほども言ったように、これはWinAPIによるものです。
さて、オートトレードボタンは、Ctrl+Eをエミュレートすることで押下/解除が可能です。でも、これってやっぱり、すでにWinAPIを使っているんですよね。
ありがとうございます!あと、スマイリーフェイスを悲しませるなんて......(笑)。
さて、Ctrl+Eをエミュレートすることで、AutoTradeボタンを押したり外したりすることができます。しかし、やはりこれはWinAPIでの話です。
そのとおりで、痛快なほどシンプルな方法だと思い、このライブラリの存在をすっかり忘れていました。ありがとう、これで好きなことができるようになった
長方形を描く MQL4スクリプト(下記コード)を作ったのですが(下記写真)、ここで問題が発生しました。破線 STYLE_DOT は幅 1 のみ動作し、2 以上で実線が描画されます。私の間違いがどこにあるのか、それとも何か隠されているのか、教えていただけませんか?
長方形を描く MQL4スクリプト(下記コード)を作ったのですが(下記写真)、ここで問題が発生しました。破線 STYLE_DOT は幅 1 のみ動作し、2 以上で実線が描画されます。私の間違いがどこにあるのか、それとも何か隠されているのか、教えていただけませんか?
手動で描画してスタイルや太さを変えてみましたか?そして、これらの実験からどのような結論が導き出されるのでしょうか。
答えが見つかったような気がします。ここには「行書体」と書かれています。線の太さが0または1インチのときのみ使用されます。幅2以上の線が実線以外ではうまくいかないのは、このためでしょう。
答えが見つかったような気がします。ここには「行書体」と書かれています。線の太さが0または1 "の時のみ使用します。実線以外の線が2以上の太さで効かないのは、このためでしょう。
まさにその通りです。私も経験あります。
皆さん、アドバイスをお願いします。私は、最後に開いたポジションのバー 番号または- 1を返すキムから関数を取りました。
この関数を呼び出して、条件を書くと
Printを 見ると、この関数は-1を返しています。最初は注文がないと思いましたが、しばらくすると注文が再び現れ、同じバーでストップの後に取引が開始されました。