MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1928 1...192119221923192419251926192719281929193019311932193319341935...1953 新しいコメント Vitaly Muzichenko 2022.03.03 22:27 #19271 Valeriy Yastremskiy #: touch / crossed - moveアルゴリズムが機能しない? 難しいですね、もう適当なものを回したいです。レベルを視覚化し、過去のレベルにストップを移動させるだけで、十分なのだそうです。こんなに釣れるとは思わなかった。もし、彼がずっといなくなっていなかったら、そうしていただろうけど、今は違う。アービトラージはいらない、すでに持っている。 Maxim Kuznetsov 2022.03.03 22:44 #19272 step:=:constの場合、現在のストップロスから指定されたステップを持つレベルを単純に表示します。これ以上、シンプルなことがあるだろうか。 Vitaly Muzichenko 2022.03.03 23:41 #19273 Maxim Kuznetsov #:step:=:constの場合、現在のストップロスから指定されたステップを持つレベルを単純に表示します。これ以上、シンプルなことがあるだろうか。 はい、アルゴリズム了解です。窓を開けて、何が起こっているのか書き留める?微妙に違う条件、掘り下げて書くために。 P.S. 他の状況では、私は尋ねないでしょう。 Юрий Дьяченко 2022.03.04 01:18 #19274 デモ版で注文を開くと、一般的なエラーでキューに入れられると書いてあるのですが、ご存知の方アドバイスお願いします。何が問題なのか? Сергей Груздев 2022.03.04 04:31 #19275 Maxim Kuznetsov #:ex4が古いコンパイラでビルドされている可能性が高いです。端末は更新されましたが、EAは古代の孤児です。作者に連絡する必要がある2つ目の選択肢 - 署名が一致しない(または技術的な理由で検証していない)。DNSの更新を待つだけで、接続が確立されます。仮定のオプション - 作者は永久追放される。プロフィールを見る結論から言うと、まず著者に質問することです。 ありがとうございました。 Valeriy Yastremskiy 2022.03.04 07:52 #19276 Vitaly Muzichenko #:難しいですね、もう適当なものを回したいです。レベルを視覚化し、過去のレベルにストップを移動させるだけで、十分なのだそうです。こんなに釣れるとは思わなかった。もし、彼がずっといなくなっていなかったら、そうしていただろうけど、今は違う。アービトラージはいらない、すでに持っている。Oninitはレベルを計算し、描画します。違う仕事でも、近くにいるために。あなたのパートはアブソリュートレベル用です。 ザイ、もちろんあまり問題はないんですけどね。注文、ポジション、トロールがどのように追跡されるかを理解する必要がある。描くのは簡単だが、レベルに達すると、レベルの色を変えるか、水平線を削除しなければならない。 ファイル: TlgAlert_0.1.mq5 29 kb TlgAlert_0.1.mq4 24 kb Valeriy Yastremskiy 2022.03.04 13:22 #19277 Valeriy Yastremskiy #:OnInitでレベル計算と描画を行う。異なるタスクのために、しかし並んでいる。あなたのパートはアブソリュートレベル用です。 ザイ、確かにあまり悪いところはないですね。注文、ポジション、トロールがどのように追跡されるかを理解する必要がある、それなら描くのは簡単だ。しかし、あるレベルに達すると、レベルの色を変えるか、水平線を削除しなければならない。 クロスファンクションにトリガーフラグを追加する必要があるのですが、時間がありません。 input double PriceOrder=0.0; // Цена ордера, input int TralStep=300; // Шаг отслеживания SL input int NumberLevels=7; // Kоличество уровней для выбранного метода ВВЕРХ input bool FlagShowLine=true; // Рисовать / не рисовать уровни //--- double LevelPrice[10]; // Количество уровней не более 10. string HLineName[10]; bool Del=true; string MsgAlert,Tip; int CurLevel; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //---Расчет ценовых уровней CalculationOfLevels(PriceOrder,TralStep,NumberLevels,Tip); if(FlagShowLine) { ShowLine(Tip); } //--- create timer EventSetTimer(60); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { Comment(""); int obj_total=ObjectsTotal(); PrintFormat("Всего %d объектов",obj_total); for(int i=obj_total-1; i>=0; i--) { string name=ObjectName(i); // PrintFormat("Объект %d: %s",i,name); ObjectDelete(name); } //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- CrossingLevel(CurLevel,Tip); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- } //+------------------------------------------------------------------+ //| Tester function | //+------------------------------------------------------------------+ double OnTester() { //--- double ret=0.0; //--- //--- return(ret); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Создает горизонтальную линию | //+------------------------------------------------------------------+ bool HLineCreate(const long chart_ID=0, // ID графика const string name="HLine", // имя линии const int sub_window=0, // номер подокна double price=0, // цена линии const color clr=clrRed, // цвет линии const ENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии const int width=1, // толщина линии const bool back=true, // на заднем плане const bool selection=false, // выделить для перемещений const bool hidden=false, // скрыт в списке объектов const long z_order=0) // приоритет на нажатие мышью { //--- если цена не задана, то установим ее на уровне текущей цены Bid if(!price) price=SymbolInfoDouble(Symbol(),SYMBOL_BID); //--- сбросим значение ошибки ResetLastError(); //--- создадим горизонтальную линию if(!ObjectCreate(chart_ID,name,OBJ_HLINE,sub_window,0,price)) { Print(__FUNCTION__, ": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError()); return(false); } //--- установим цвет линии ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); //--- установим стиль отображения линии ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); //--- установим толщину линии ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width); //--- отобразим на переднем (false) или заднем (true) плане ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); //--- включим (true) или отключим (false) режим перемещения линии мышью //--- при создании графического объекта функцией ObjectCreate, по умолчанию объект //--- нельзя выделить и перемещать. Внутри же этого метода параметр selection //--- по умолчанию равен true, что позволяет выделять и перемещать этот объект ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); //--- установим приоритет на получение события нажатия мыши на графике ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- успешное выполнение return(true); } //+------------------------------------------------------------------+ //| Поиск ближайших уровней | //+------------------------------------------------------------------+ void ShowModify(string name, string tip, bool del) { if(del){ ObjectDelete(name); } if(!del){ if(tip=="Sell"){ ObjectSetInteger(0,name,OBJPROP_COLOR,clrGold); } if(tip=="Buy"){ ObjectSetInteger(0,name,OBJPROP_COLOR,clrCoral); } } } //+------------------------------------------------------------------+ //| Мониторинг пересечения уровней | //+------------------------------------------------------------------+ bool CrossingLevel(int level, string tip) { if((tip=="Buy" && Bid > LevelPrice[level]) || (tip=="Sell" && Ask < LevelPrice[level])){ CurLevel=level++ ; return(true); } return(false); } void CalculationOfLevels(double priceorder, int trstep, int numberl, string tip){ //---Расчет ценовых уровней for(int i=0; i<=(numberl); i++){ if(tip=="Buy"){ LevelPrice[i] = priceorder + trstep*Point; if(tip=="Sell"){ LevelPrice[i] = priceorder - trstep*Point; } } CurLevel=1; } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void ShowLine(string tip) { color ClrLine=clrRed; if(tip=="Buy") ClrLine=clrBlue; if(tip=="Sell") ClrLine=clrRed; for(int i=0;i<=(NumberLevels);i++){ //Alert("ShowLine_",ShowLine,"__",LevelPrice[i],"__",ClrLine); HLineName[i]="LevelPrice_"+(string)i+"_"+(string)LevelPrice[i]; HLineCreate(0,HLineName[i],0,LevelPrice[i],(color)ClrLine,STYLE_SOLID,1); } } ファイル: ShowLevel.mq4 16 kb Vitaly Muzichenko 2022.03.04 13:43 #19278 Valeriy Yastremskiy #:クロスファンクションにトリガーフラグを追加する必要があるのですが、時間がないのです。 ちょっと的外れなんですけどね。 昔書いたEAがあるのですが、ポジションを建てる場所が表示されるEAです あとは、トロールのコードに追加して、トロールが発動するようなラインを描く必要があります。 この作業は、トロールEAが1つのチャートに設定されており、オープンポジションがあるすべてのチャートにラインを引く必要があるため、複雑になっています。 ファイル: Trailing_all.mq4 57 kb Valeriy Yastremskiy 2022.03.04 15:42 #19279 Vitaly Muzichenko #:それはちょっと的外れですね。こんな感じで長々と書いていますが、ポジションを開く場所が表示されるEAですあとは、トロールのコードに追加して、トロールが発動するようなラインを描けばいいのです。この作業は、トロールEAが1つのチャートに設定されており、オープンポジションがあるすべてのチャートにラインを引く必要があるため、複雑になっています。 すべてのウィンドウはすでに開いているのか、それともポジションが出現したときにEAによって開かれるのか?チャートを探すのが課題です) Vitaly Muzichenko 2022.03.04 16:05 #19280 Valeriy Yastremskiy #: すべてのウィンドウはすでに開いているのか、それともポジションが発生したときにEAによって開かれるのか?チャートを探すのが課題です) ポジションがあれば、ウィンドウは開いているものと思っています。 1...192119221923192419251926192719281929193019311932193319341935...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
touch / crossed - moveアルゴリズムが機能しない?
難しいですね、もう適当なものを回したいです。レベルを視覚化し、過去のレベルにストップを移動させるだけで、十分なのだそうです。こんなに釣れるとは思わなかった。もし、彼がずっといなくなっていなかったら、そうしていただろうけど、今は違う。アービトラージはいらない、すでに持っている。
step:=:constの場合、現在のストップロスから指定されたステップを持つレベルを単純に表示します。これ以上、シンプルなことがあるだろうか。
step:=:constの場合、現在のストップロスから指定されたステップを持つレベルを単純に表示します。これ以上、シンプルなことがあるだろうか。
はい、アルゴリズム了解です。窓を開けて、何が起こっているのか書き留める?微妙に違う条件、掘り下げて書くために。
P.S. 他の状況では、私は尋ねないでしょう。
ex4が古いコンパイラでビルドされている可能性が高いです。端末は更新されましたが、EAは古代の孤児です。作者に連絡する必要がある
2つ目の選択肢 - 署名が一致しない(または技術的な理由で検証していない)。DNSの更新を待つだけで、接続が確立されます。
仮定のオプション - 作者は永久追放される。プロフィールを見る
結論から言うと、まず著者に質問することです。
ありがとうございました。
難しいですね、もう適当なものを回したいです。レベルを視覚化し、過去のレベルにストップを移動させるだけで、十分なのだそうです。こんなに釣れるとは思わなかった。もし、彼がずっといなくなっていなかったら、そうしていただろうけど、今は違う。アービトラージはいらない、すでに持っている。
Oninitはレベルを計算し、描画します。違う仕事でも、近くにいるために。あなたのパートはアブソリュートレベル用です。
ザイ、もちろんあまり問題はないんですけどね。注文、ポジション、トロールがどのように追跡されるかを理解する必要がある。描くのは簡単だが、レベルに達すると、レベルの色を変えるか、水平線を削除しなければならない。OnInitでレベル計算と描画を行う。異なるタスクのために、しかし並んでいる。あなたのパートはアブソリュートレベル用です。
ザイ、確かにあまり悪いところはないですね。注文、ポジション、トロールがどのように追跡されるかを理解する必要がある、それなら描くのは簡単だ。しかし、あるレベルに達すると、レベルの色を変えるか、水平線を削除しなければならない。クロスファンクションにトリガーフラグを追加する必要があるのですが、時間がありません。
クロスファンクションにトリガーフラグを追加する必要があるのですが、時間がないのです。
ちょっと的外れなんですけどね。
昔書いたEAがあるのですが、ポジションを建てる場所が表示されるEAです
あとは、トロールのコードに追加して、トロールが発動するようなラインを描く必要があります。
この作業は、トロールEAが1つのチャートに設定されており、オープンポジションがあるすべてのチャートにラインを引く必要があるため、複雑になっています。
それはちょっと的外れですね。
こんな感じで長々と書いていますが、ポジションを開く場所が表示されるEAです
あとは、トロールのコードに追加して、トロールが発動するようなラインを描けばいいのです。
この作業は、トロールEAが1つのチャートに設定されており、オープンポジションがあるすべてのチャートにラインを引く必要があるため、複雑になっています。
すべてのウィンドウはすでに開いているのか、それともポジションが発生したときにEAによって開かれるのか?チャートを探すのが課題です)
ポジションがあれば、ウィンドウは開いているものと思っています。