MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1481 1...147414751476147714781479148014811482148314841485148614871488...1953 新しいコメント Alexey Viktorov 2021.05.25 10:01 #14801 ANDREY:貴重な情報をありがとうございました。たまたま真になった式を変数に格納する方法を教えてください。より正確に言うと - どのような時間枠のキャンドルに関して関数で計算された最小値は何ですか?このタイムフレームの識別子を変数に保存するには? ありがとうございました。 bool変数を宣言するだけ bool variant_H4 = Bid-iLow( NULL ,PERIOD_H4,1) >= 0.0030, variant_H1 = Bid-iLow(NULL ,PERIOD_H1,1) >= 0.0030, variant_M30 = Bid-iLow(NULL ,PERIOD_M30,1) >= 0.0030; if (variant_H4 || variant_H1 || variant_M30) ANDREY 2021.05.25 10:20 #14802 Alexey Viktorov:bool変数を宣言するだけ 有益な情報をありがとうございました。 分足チャートでテストする場合、5桁の値をイエロー変数に保存する方法を教えてください。 double LoU; void OnTick() { if (Bid - iLow( NULL ,PERIOD_H4,1)>=0.0030||Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030||Bid - iLow( NULL ,PERIOD_M30,1)>=0.0030) { OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0); LoU = (ЛОУ из выражения, которое оказалось истинным); } } ありがとうございます。 Oleksandr Nozemtsev 2021.05.25 10:41 #14803 こんにちは。mql4でテキストを行にバインドして、後者を移動させると、スクリーンショットのように碑文も移動するようにする方法を教えていただけませんか?オブジェクトをバインドする方法として、画面の隅にピクセル単位でバインドする方法と、時間・価格座標でバインドする方法があることは知っています。最初のケースでは、静的なテキストが得られ、2番目のケースでは、私が望むものとは全く異なります。価格座標(縦組み)が明確なため、行の価格を取得して_Pointのペアを追加し、テキストが行より少し高くなるようにしています。しかし、時間についてはどうでしょうか。最後のバーにバインドしたくない。チャートのシフトが異なると、テキストが右 - 左に引っ張られるからだ。ここで、画面の右端にリジッドな横方向の縛りを作りたいのですが、方法がわかりません。 Tretyakov Rostyslav 2021.05.25 11:10 #14804 Oleksandr Nozemtsev: こんにちは。mql4でテキストを行にバインドして、後者を移動させると、スクリーンショットのように碑文も移動するようにする方法を教えていただけませんか?オブジェクトをバインドする方法として 、画面の隅にピクセル単位でバインドする方法と、時間・価格座標でバインドする方法があることは知っています。最初のケースでは、静的なテキストが得られ、2番目のケースでは、私が望むものとは全く異なります。価格座標(縦組み)が明確なため、行の価格を取得して_Pointのペアを追加し、テキストが行より少し高くなるようにしています。しかし、時間についてはどうでしょうか。最後のバーにバインドしたくない。チャートのシフトが異なると、テキストが右 - 左に引っ張られるからだ。ここで、画面の右端にリジッドな横方向の縛りを作りたいのですが、方法がわかりません。 線は自分で引くのですか、それともインジケーターですか? Oleksandr Nozemtsev 2021.05.25 12:23 #14805 MakarFX: 線は自分で引くのですか、それともインジケーターですか? この線は、インジケータが 読み込まれたときに作成さ れます。このレベルに関する情報をAlertで表示するのではなく、行の上に直接表示するためにテキストが必要です(Alertが機能します)。 Tretyakov Rostyslav 2021.05.25 12:51 #14806 Oleksandr Nozemtsev:この線は、インジケータが 読み込まれたときに作成さ れます。このレベルに関する情報をAlertで表示するのではなく、行の上に直接表示するためにテキストが必要です(Alertが機能します)。 回線作成コードを掲載する Oleksandr Nozemtsev 2021.05.25 12:59 #14807 MakarFX: 回線作成コードを掲載する int OnInit() { //Create line "name_line" if it is not exist yet. if(ObjectFind(0, name_line) == -1) { //価格が指定されていない場合は、現在の売値を設定します。 if(!price_line) price_line =SymbolInfoDouble(Symbol(), SYMBOL_ASK); //エラー値のリセット ResetLastError()。 //create a line if(!ObjectCreate(0, name_line, OBJ_HLINE, 0, 0, price_line)) Print("Line Line.Error ", GetLastError()); // ObjectSet(name_line, OBJPROP_COLOR, color_line); //線の色 ObjectSet(name_line, OBJPROP_STYLE, style_line); //行のスタイル ObjectSet(name_line, OBJPROP_WIDTH, width_line); //線の太さ ObjectSet(name_line, OBJPROP_BACK, back_line); //フロント/バック ObjectSet(name_line, OBJPROP_SELECTABLE, selection_line);// マウスでオブジェクトをクリックすることができる。 ObjectSet(name_line, OBJPROP_SELECTED, selection_line); //オブジェクトが選択された状態です。作成時にOが選択されていない } return(INIT_SUCCEEDED); } Any questions from newcomers expert advisor - miscellaneous Need some help with Tretyakov Rostyslav 2021.05.25 13:23 #14808 Oleksandr Nozemtsev: キャッチ //+------------------------------------------------------------------+ //| Line_Text.mq4 | //| Copyright 2020 MakarFX | //| https://www.mql5.com/ru/users/makarfx | //+------------------------------------------------------------------+ #property copyright "Copyright 2020 MakarFX" #property link "https://www.mql5.com/ru/users/makarfx" #property version "1.00" #property strict #property indicator_chart_window double buy,sell; datetime DoTime; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { ObjectsDeleteAll(0,"My_"); //--- indicator buffers mapping if(ObjectFind(0,"My_BuyLine")!=0) { HLineCreate(0,"My_BuyLine",0,Ask+50*Point,clrTeal,2,1,false,true,false); } if(ObjectFind(0,"My_SellLine")!=0) { HLineCreate(0,"My_SellLine",0,Bid-50*Point,clrCrimson,2,1,false,true,false); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ObjectsDeleteAll(0,"My_"); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- DoTime = TimeCurrent()+(Period()*60*7); if(ObjectFind(0,"My_BuyLine")==0) { buy = NormalizeDouble(ObjectGet("My_BuyLine",OBJPROP_PRICE1),Digits); Create_Text(0,"My_BuyText",0,DoTime,buy+5*Point,"BuyText","Arial",10,clrTeal,0,0,false,false,false); } if(ObjectFind(0,"My_SellLine")==0) { sell = NormalizeDouble(ObjectGet("My_SellLine",OBJPROP_PRICE1),Digits); Create_Text(0,"My_SellText",0,DoTime,sell-5*Point,"SellText","Arial",10,clrCrimson,0,0,false,false,false); } if(buy!=ObjectGet("My_BuyLine",OBJPROP_PRICE1)||sell!=ObjectGet("My_SellLine",OBJPROP_PRICE1)) { ObjectMove(0,"My_BuyText",0,DoTime,buy+5*Point); ObjectMove(0,"My_SellText",0,DoTime,sell-5*Point); } //--- return value of prev_calculated for next call return(rates_total); } //+--------------------------------------------------------------------------------------------------------------------+ //| Создает горизонтальную линию | //+--------------------------------------------------------------------------------------------------------------------+ 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=false, // на заднем плане const bool selection=true, // выделить для перемещений const bool hidden=true, // скрыт в списке объектов const long z_order=0) // приоритет на нажатие мышью { //--- сбросим значение ошибки 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); ObjectSetInteger (chart_ID, name, OBJPROP_BACK, back); ObjectSetInteger (chart_ID, name, OBJPROP_SELECTABLE, selection); ObjectSetInteger (chart_ID, name, OBJPROP_SELECTED, selection); ObjectSetInteger (chart_ID, name, OBJPROP_HIDDEN, hidden); ObjectSetInteger (chart_ID, name, OBJPROP_ZORDER, z_order); //--- успешное выполнение return(true); } //+--------------------------------------------------------------------------------------------------------------------+ //| Создает объект "Текст" | //+--------------------------------------------------------------------------------------------------------------------+ bool Create_Text(const long chart_ID=0, // ID графика const string name="Text", // имя объекта const int sub_window=0, // номер подокна datetime time=0, // время точки привязки double price=0, // цена точки привязки const string text="Text", // сам текст const string font="Arial", // шрифт const int font_size=10, // размер шрифта const color clr=clrRed, // цвет const double angle=0.0, // наклон текста const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // способ привязки const bool back=false, // на заднем плане const bool selection=false, // выделить для перемещений const bool hidden=true, // скрыт в списке объектов const long z_order=0) // приоритет на нажатие мышью { //--- сбросим значение ошибки ResetLastError(); //--- создадим объект "Текст" if(!ObjectCreate(chart_ID,name,OBJ_TEXT,sub_window,time,price)) { Print(__FUNCTION__,": не удалось создать объект \"Текст\"! Код ошибки = ",GetLastError()); return(false); } //--- установим свойства объектa "Текст" ObjectSetString(chart_ID,name,OBJPROP_TEXT,text); ObjectSetString(chart_ID,name,OBJPROP_FONT,font); ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size); ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle); ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor); ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- успешное выполнение return(true); } //+------------------------------------------------------------------+ Oleksandr Nozemtsev 2021.05.25 14:26 #14809 MakarFX:キャッチ うわー、多いなー。数行のコードで済むと思ったのに。ありがとうございます!(笑)。 ANDREY 2021.05.25 15:24 #14810 Alexey Viktorov:bool変数を宣言するだけまた、1分足チャートでテストを行う場合、5桁の青い値を黄色の変数に保存する方法を教えてください。double LoU; void OnTick() { if (Bid - iLow( NULL ,PERIOD_H4,1)>=0.0030||Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030||Bid - iLow( NULL ,PERIOD_M30,1)>=0.0030) { OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0); LoU = (ЛОУ из выражения, которое оказалось истинным); } } ありがとうございました。 1...147414751476147714781479148014811482148314841485148614871488...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
貴重な情報をありがとうございました。
たまたま真になった式を変数に格納する方法を教えてください。より正確に言うと - どのような時間枠のキャンドルに関して関数で計算された最小値は何ですか?このタイムフレームの識別子を変数に保存するには?
ありがとうございました。
bool変数を宣言するだけ
bool変数を宣言するだけ
有益な情報をありがとうございました。
分足チャートでテストする場合、5桁の値をイエロー変数に保存する方法を教えてください。
ありがとうございます。
こんにちは。mql4でテキストを行にバインドして、後者を移動させると、スクリーンショットのように碑文も移動するようにする方法を教えていただけませんか?オブジェクトをバインドする方法として 、画面の隅にピクセル単位でバインドする方法と、時間・価格座標でバインドする方法があることは知っています。最初のケースでは、静的なテキストが得られ、2番目のケースでは、私が望むものとは全く異なります。価格座標(縦組み)が明確なため、行の価格を取得して_Pointのペアを追加し、テキストが行より少し高くなるようにしています。しかし、時間についてはどうでしょうか。最後のバーにバインドしたくない。チャートのシフトが異なると、テキストが右 - 左に引っ張られるからだ。ここで、画面の右端にリジッドな横方向の縛りを作りたいのですが、方法がわかりません。
線は自分で引くのですか、それともインジケーターですか?
この線は、インジケータが 読み込まれたときに作成さ れます。このレベルに関する情報をAlertで表示するのではなく、行の上に直接表示するためにテキストが必要です(Alertが機能します)。
この線は、インジケータが 読み込まれたときに作成さ れます。このレベルに関する情報をAlertで表示するのではなく、行の上に直接表示するためにテキストが必要です(Alertが機能します)。
回線作成コードを掲載する
int OnInit()
{
//Create line "name_line" if it is not exist yet.
if(ObjectFind(0, name_line) == -1)
{
//価格が指定されていない場合は、現在の売値を設定します。
if(!price_line)
price_line =SymbolInfoDouble(Symbol(), SYMBOL_ASK);
//エラー値のリセット
ResetLastError()。
//create a line
if(!ObjectCreate(0, name_line, OBJ_HLINE, 0, 0, price_line))
Print("Line Line.Error ", GetLastError());
//
ObjectSet(name_line, OBJPROP_COLOR, color_line); //線の色
ObjectSet(name_line, OBJPROP_STYLE, style_line); //行のスタイル
ObjectSet(name_line, OBJPROP_WIDTH, width_line); //線の太さ
ObjectSet(name_line, OBJPROP_BACK, back_line); //フロント/バック
ObjectSet(name_line, OBJPROP_SELECTABLE, selection_line);// マウスでオブジェクトをクリックすることができる。
ObjectSet(name_line, OBJPROP_SELECTED, selection_line); //オブジェクトが選択された状態です。作成時にOが選択されていない
}
return(INIT_SUCCEEDED);
}
キャッチ
キャッチ
うわー、多いなー。数行のコードで済むと思ったのに。ありがとうございます!(笑)。
bool変数を宣言するだけ
また、1分足チャートでテストを行う場合、5桁の青い値を黄色の変数に保存する方法を教えてください。
ありがとうございました。