アドバイザーを無料でお書きします - ページ 164 1...157158159160161162163164165166167168169170171 新しいコメント SanAlex 2022.02.19 22:55 #1631 GhostMan #:インジケータを無料で作成することはできますか? これで良いのでしょうか? //+------------------------------------------------------------------+ //| iMACD Four TimeFrames.mq5 | //+------------------------------------------------------------------+ //| Fx10.mq5 | //| Copyright © 2000-2007, palanka | //| http://www.metaquotes.ru | //+------------------------------------------------------------------+ //---- авторство индикатора #property copyright "Copyright © 2000-2007, palanka" //---- ссылка на сайт автора #property link "" //---- номер версии индикатора #property version "1.02" //---- отрисовка индикатора в главном окне #property indicator_chart_window //---- для расчета и отрисовки индикатора использовано два буфера #property indicator_buffers 2 //---- использовано всего два графических построения #property indicator_plots 2 //+----------------------------------------------+ //| Объявление констант | //+----------------------------------------------+ #define RESET 0 // константа для возврата терминалу команды на пересчет индикатора //+----------------------------------------------+ //| Параметры отрисовки медвежьего индикатора | //+----------------------------------------------+ //---- отрисовка индикатора 1 в виде символа #property indicator_type1 DRAW_ARROW //---- в качестве цвета индикатора использован цвет Magenta #property indicator_color1 Red //---- толщина линии индикатора 1 равна 4 #property indicator_width1 4 //---- отображение метки индикатора #property indicator_label1 "iMACD Four TimeFrames Sell" //+----------------------------------------------+ //| Параметры отрисовки бычьего индикатора | //+----------------------------------------------+ //---- отрисовка индикатора 2 в виде символа #property indicator_type2 DRAW_ARROW //---- в качестве цвета индикатора использован цвет Lime #property indicator_color2 Blue //---- толщина линии индикатора 2 равна 4 #property indicator_width2 4 //---- отображение метки индикатора #property indicator_label2 "iMACD Four TimeFrames Buy" //+----------------------------------------------+ //| Входные параметры индикатора | //+----------------------------------------------+ input group "Trading settings" input ENUM_TIMEFRAMES InpWorkingPeriod = PERIOD_CURRENT; // Working timeframe (#1 timeframe) input ENUM_TIMEFRAMES InpPeriod_2 = PERIOD_M15; // #2 timeframe input ENUM_TIMEFRAMES InpPeriod_3 = PERIOD_M30; // #3 timeframe input ENUM_TIMEFRAMES InpPeriod_4 = PERIOD_H1; // #4 timeframe input group "MACD" input int Inp_MACD_fast_ema_period = 12; // MACD: period for Fast average calculation input int Inp_MACD_slow_ema_period = 26; // MACD: period for Slow average calculation input int Inp_MACD_signal_period = 9; // MACD: period for their difference averaging input ENUM_APPLIED_PRICE Inp_MACD_applied_price = PRICE_CLOSE; // MACD: type of price //+----------------------------------------------+ //---- объявление динамических массивов, которые в дальнейшем //---- будут использованы в качестве индикаторных буферов double SellBuffer[]; double BuyBuffer[]; //---- объявление целочисленных переменных начала отсчета данных int min_rates_total; //---- объявление целочисленных переменных для хендлов индикаторов int handle_iMACD; // variable for storing the handle of the iMACD indicator int handle_iMACD_2; // variable for storing the handle of the iMACD indicator int handle_iMACD_3; // variable for storing the handle of the iMACD indicator int handle_iMACD_4; // variable for storing the handle of the iMACD indicator int OldTrend; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { //---- инициализация глобальных переменных min_rates_total = int(Inp_MACD_slow_ema_period + 1); //---- получение хендла индикатора MACD handle_iMACD = iMACD(NULL, InpWorkingPeriod, Inp_MACD_fast_ema_period, Inp_MACD_slow_ema_period, Inp_MACD_signal_period, Inp_MACD_applied_price); if(handle_iMACD == INVALID_HANDLE) Print(" Не удалось получить хендл индикатора iMACD"); //---- получение хендла индикатора MACD handle_iMACD_2 = iMACD(NULL, InpPeriod_2, Inp_MACD_fast_ema_period, Inp_MACD_slow_ema_period, Inp_MACD_signal_period, Inp_MACD_applied_price); if(handle_iMACD_2 == INVALID_HANDLE) Print(" Не удалось получить хендл индикатора iMACD"); //---- получение хендла индикатора MACD handle_iMACD_3 = iMACD(NULL, InpPeriod_3, Inp_MACD_fast_ema_period, Inp_MACD_slow_ema_period, Inp_MACD_signal_period, Inp_MACD_applied_price); if(handle_iMACD_3 == INVALID_HANDLE) Print(" Не удалось получить хендл индикатора iMACD"); //---- получение хендла индикатора MACD handle_iMACD_4 = iMACD(NULL, InpPeriod_4, Inp_MACD_fast_ema_period, Inp_MACD_slow_ema_period, Inp_MACD_signal_period, Inp_MACD_applied_price); if(handle_iMACD_4 == INVALID_HANDLE) Print(" Не удалось получить хендл индикатора iMACD"); //---- превращение динамического массива SellBuffer[] в индикаторный буфер SetIndexBuffer(0, SellBuffer, INDICATOR_DATA); //---- осуществление сдвига начала отсчета отрисовки индикатора 1 PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, min_rates_total); //---- символ для индикатора PlotIndexSetInteger(0, PLOT_ARROW, 234); //---- установка значений индикатора, которые не будут видимы на графике PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0); //---- индексация элементов в буфере, как в таймсерии ArraySetAsSeries(SellBuffer, true); //---- превращение динамического массива BuyBuffer[] в индикаторный буфер SetIndexBuffer(1, BuyBuffer, INDICATOR_DATA); //---- осуществление сдвига начала отсчета отрисовки индикатора 2 PlotIndexSetInteger(1, PLOT_DRAW_BEGIN, min_rates_total); //---- символ для индикатора PlotIndexSetInteger(1, PLOT_ARROW, 233); //---- установка значений индикатора, которые не будут видимы на графике PlotIndexSetDouble(1, PLOT_EMPTY_VALUE, 0); //---- индексация элементов в буфере, как в таймсерии ArraySetAsSeries(BuyBuffer, true); //---- установка формата точности отображения индикатора IndicatorSetInteger(INDICATOR_DIGITS, _Digits); //---- имя для окон данных и метка для подокон string short_name = "iMACD Four TimeFrames"; IndicatorSetString(INDICATOR_SHORTNAME, short_name); //---- } //+------------------------------------------------------------------+ //| 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[]) { //---- проверка количества баров на достаточность для расчета if(BarsCalculated(handle_iMACD) < rates_total || BarsCalculated(handle_iMACD_2) < rates_total || BarsCalculated(handle_iMACD_3) < rates_total || BarsCalculated(handle_iMACD_4) < rates_total || rates_total < min_rates_total) return(RESET); //---- объявления локальных переменных int to_copy, limit, bar; double main_1[], signal_1[], main_2[], signal_2[], main_3[], signal_3[], main_4[], signal_4[]; bool MacdUp_1, MacdDn_1, MacdUp_2, MacdDn_2, MacdUp_3, MacdDn_3, MacdUp_4, MacdDn_4; //---- расчеты необходимого количества копируемых данных и //---- и стартового номера limit для цикла пересчета баров if(prev_calculated > rates_total || prev_calculated <= 0) // проверка на первый старт расчета индикатора limit = rates_total - min_rates_total; // стартовый номер для расчета всех баров else limit = rates_total - prev_calculated; // стартовый номер для расчета новых баров to_copy = limit + 1; //---- копируем вновь появившиеся данные в массивы if(CopyBuffer(handle_iMACD, MAIN_LINE, 0, to_copy, main_1) <= 0) return(RESET); if(CopyBuffer(handle_iMACD, SIGNAL_LINE, 0, to_copy, signal_1) <= 0) return(RESET); if(CopyBuffer(handle_iMACD_2, MAIN_LINE, 0, to_copy, main_2) <= 0) return(RESET); if(CopyBuffer(handle_iMACD_2, SIGNAL_LINE, 0, to_copy, signal_2) <= 0) return(RESET); if(CopyBuffer(handle_iMACD_3, MAIN_LINE, 0, to_copy, main_3) <= 0) return(RESET); if(CopyBuffer(handle_iMACD_3, SIGNAL_LINE, 0, to_copy, signal_3) <= 0) return(RESET); if(CopyBuffer(handle_iMACD_4, MAIN_LINE, 0, to_copy, main_4) <= 0) return(RESET); if(CopyBuffer(handle_iMACD_4, SIGNAL_LINE, 0, to_copy, signal_4) <= 0) return(RESET); //---- индексация элементов в массивах, как в таймсериях ArraySetAsSeries(main_1, true); ArraySetAsSeries(signal_1, true); ArraySetAsSeries(main_2, true); ArraySetAsSeries(signal_2, true); ArraySetAsSeries(main_3, true); ArraySetAsSeries(signal_3, true); ArraySetAsSeries(main_4, true); ArraySetAsSeries(signal_4, true); ArraySetAsSeries(high, true); ArraySetAsSeries(low, true); //---- основной цикл расчета индикатора for(bar = limit; bar >= 0 && !IsStopped(); bar--) { BuyBuffer[bar] = 0.0; SellBuffer[bar] = 0.0; //--- BUY Signal MacdUp_1 = main_1[bar] > signal_1[bar] && main_1[bar] > 0.0 && signal_1[bar] > 0.0; MacdUp_2 = main_2[bar] > signal_2[bar] && main_2[bar] > 0.0 && signal_2[bar] > 0.0; MacdUp_3 = main_3[bar] > signal_3[bar] && main_3[bar] > 0.0 && signal_3[bar] > 0.0; MacdUp_4 = main_4[bar] > signal_4[bar] && main_4[bar] > 0.0 && signal_4[bar] > 0.0; //--- SELL Signal MacdDn_1 = main_1[bar] < signal_1[bar] && main_1[bar] < 0.0 && signal_1[bar] < 0.0; MacdDn_2 = main_2[bar] < signal_2[bar] && main_2[bar] < 0.0 && signal_2[bar] < 0.0; MacdDn_3 = main_3[bar] < signal_3[bar] && main_3[bar] < 0.0 && signal_3[bar] < 0.0; MacdDn_4 = main_4[bar] < signal_4[bar] && main_4[bar] < 0.0 && signal_4[bar] < 0.0; //--- BUY Signal if(MacdUp_1 && MacdUp_2 && MacdUp_3 && MacdUp_4) { if(OldTrend < 0) BuyBuffer[bar] = low[bar]; if(bar != 0) OldTrend = +1; } //--- SELL Signal if(MacdDn_1 && MacdDn_2 && MacdDn_3 && MacdDn_4) { if(OldTrend > 0) SellBuffer[bar] = high[bar]; if(bar != 0) OldTrend = -1; } } //---- return(rates_total); } //+------------------------------------------------------------------+ ファイル: iMACD_Four_TimeFrames.mq5 23 kb GhostMan 2022.02.20 07:10 #1632 MT4用のインジケーターを書いてくれる人はいないのか...。 タスクになります。 は、与えられた時間分の長方形を描きます。上限と下限は、与えられた時間間隔の最大値と最小値(Inducedで設定)で設定されます。 の例です。 この場合、2022.02.01 2:00 - 2022.02.01 14:00 の時間間隔は、72時間(最小または最大の最も近い点から間隔の始まりまで)で描画されます。 SanAlex 2022.02.20 08:48 #1633 GhostMan # : MT4の七面鳥を書くことができる人。タスク。与えられた(トルコでの設定)時間数の間、長方形を描きます。上限と下限は、指定された時間間隔(七面鳥で設定)の最大値と最小値によって決定されます。例。この場合の時間間隔2022.02.012:00-2022.02.0114:00は72時間描画されます(最も近い最小または最大点から間隔の開始まで)ここにサンプルスクリプトがあります-ここから引用https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_rectangle //+------------------------------------------------------------------+ //| OBJ_RECTANGLE.mq4 | //| Copyright 2022, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Software Corp." #property link " https://www.mql5.com " #property version "1.00" //--- описание #property description "Скрипт строит прямоугольник на графике." #property description "Координаты точек привязки задаются в" #property description "процентах от размеров окна графика." #property strict //--- покажем окно входных параметров при запуске скрипта #property script_show_inputs //--- входные параметры скрипта input string InpName= "Rectangle" ; // Имя прямоугольника input int InpDate1= 40 ; // Дата 1-ой точки в % input int InpPrice1= 40 ; // Цена 1-ой точки в % input int InpDate2= 60 ; // Дата 2-ой точки в % input int InpPrice2= 60 ; // Цена 2-ой точки в % input color InpColor= clrRed ; // Цвет прямоугольника input ENUM_LINE_STYLE InpStyle= STYLE_DASH ; // Стиль линий прямоугольника input int InpWidth= 2 ; // Толщина линий прямоугольника input bool InpFill= true ; // Заливка прямоугольника цветом input bool InpBack= false ; // Прямоугольника на заднем плане input bool InpSelection= true ; // Выделить для перемещений input bool InpHidden= true ; // Скрыт в списке объектов input long InpZOrder= 0 ; // Приоритет на нажатие мышью //+------------------------------------------------------------------+ //| Cоздает прямоугольник по заданным координатам | //+------------------------------------------------------------------+ bool RectangleCreate( const long chart_ID= 0 , // ID графика const string name= "Rectangle" , // имя прямоугольника const int sub_window= 0 , // номер подокна datetime time1= 0 , // время первой точки double price1= 0 , // цена первой точки datetime time2= 0 , // время второй точки double price2= 0 , // цена второй точки const color clr= clrRed , // цвет прямоугольника const ENUM_LINE_STYLE style= STYLE_SOLID , // стиль линий прямоугольника const int width= 1 , // толщина линий прямоугольника const bool fill= false , // заливка прямоугольника цветом const bool back= false , // на заднем плане const bool selection= true , // выделить для перемещений const bool hidden= true , // скрыт в списке объектов const long z_order= 0 ) // приоритет на нажатие мышью { //--- установим координаты точек привязки, если они не заданы ChangeRectangleEmptyPoints(time1,price1,time2,price2); //--- сбросим значение ошибки ResetLastError (); //--- создадим прямоугольник по заданным координатам if (! ObjectCreate (chart_ID,name, OBJ_RECTANGLE ,sub_window,time1,price1,time2,price2)) { 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); //--- включим (true) или отключим (false) режим заливки прямоугольника ObjectSetInteger (chart_ID,name, OBJPROP_FILL ,fill); //--- отобразим на переднем (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 ); } //+------------------------------------------------------------------+ //| Перемещает точку привязки прямоугольника | //+------------------------------------------------------------------+ bool RectanglePointChange( const long chart_ID= 0 , // ID графика const string name= "Rectangle" , // имя прямоугольника const int point_index= 0 , // номер точки привязки datetime time= 0 , // координата времени точки привязки double price= 0 ) // координата цены точки привязки { //--- если координаты точки не заданы, то перемещаем ее на текущий бар с ценой Bid if (!time) time= TimeCurrent (); if (!price) price= SymbolInfoDouble ( Symbol (), SYMBOL_BID ); //--- сбросим значение ошибки ResetLastError (); //--- переместим точку привязки if (! ObjectMove (chart_ID,name,point_index,time,price)) { Print ( __FUNCTION__ , ": не удалось переместить точку привязки! Код ошибки = " , GetLastError ()); return ( false ); } //--- успешное выполнение return ( true ); } //+------------------------------------------------------------------+ //| Удаляет прямоугольник | //+------------------------------------------------------------------+ bool RectangleDelete( const long chart_ID= 0 , // ID графика const string name= "Rectangle" ) // имя прямоугольника { //--- сбросим значение ошибки ResetLastError (); //--- удалим прямоугольник if (! ObjectDelete (chart_ID,name)) { Print ( __FUNCTION__ , ": не удалось удалить прямоугольник! Код ошибки = " , GetLastError ()); return ( false ); } //--- успешное выполнение return ( true ); } //+------------------------------------------------------------------+ //| Проверяет значения точек привязки прямоугольника и для пустых | //| значений устанавливает значения по умолчанию | //+------------------------------------------------------------------+ void ChangeRectangleEmptyPoints( datetime &time1, double &price1, datetime &time2, double &price2) { //--- если время первой точки не задано, то она будет на текущем баре if (!time1) time1= TimeCurrent (); //--- если цена первой точки не задана, то она будет иметь значение Bid if (!price1) price1= SymbolInfoDouble ( Symbol (), SYMBOL_BID ); //--- если время второй точки не задано, то она лежит на 9 баров левее второй if (!time2) { //--- массив для приема времени открытия 10 последних баров datetime temp[ 10 ]; CopyTime ( Symbol (), Period (),time1, 10 ,temp); //--- установим вторую точку на 9 баров левее первой time2=temp[ 0 ]; } //--- если цена второй точки не задана, сдвинем ее на 300 пунктов ниже первой if (!price2) price2=price1- 300 * SymbolInfoDouble ( Symbol (), SYMBOL_POINT ); } //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { //--- проверим входные параметры на корректность if (InpDate1< 0 || InpDate1> 100 || InpPrice1< 0 || InpPrice1> 100 || InpDate2< 0 || InpDate2> 100 || InpPrice2< 0 || InpPrice2> 100 ) { Print ( "Ошибка! Некорректные значения входных параметров!" ); return ; } //--- количество видимых баров в окне графика int bars=( int ) ChartGetInteger ( 0 , CHART_VISIBLE_BARS ); //--- размер массива price int accuracy= 1000 ; //--- массивы для хранения значений дат и цен, которые будут использованы //--- для установки и изменения координат точек привязки прямоугольника datetime date[]; double price[]; //--- выделение памяти ArrayResize (date,bars); ArrayResize (price,accuracy); //--- заполним массив дат ResetLastError (); if ( CopyTime ( Symbol (), Period (), 0 ,bars,date)==- 1 ) { Print ( "Не удалось скопировать значения времени! Код ошибки = " , GetLastError ()); return ; } //--- заполним массив цен //--- найдем максимальное и минимальное значение графика double max_price= ChartGetDouble ( 0 , CHART_PRICE_MAX ); double min_price= ChartGetDouble ( 0 , CHART_PRICE_MIN ); //--- определим шаг изменения цены и заполним массив double step=(max_price-min_price)/accuracy; for ( int i= 0 ; i<accuracy; i++) price[i]=min_price+i*step; //--- определим точки для рисования прямоугольника int d1=InpDate1*(bars- 1 )/ 100 ; int d2=InpDate2*(bars- 1 )/ 100 ; int p1=InpPrice1*(accuracy- 1 )/ 100 ; int p2=InpPrice2*(accuracy- 1 )/ 100 ; //--- создадим прямоугольник if (!RectangleCreate( 0 ,InpName, 0 ,date[d1],price[p1],date[d2],price[p2],InpColor, InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder)) { return ; } //--- перерисуем график и подождем 1 секунду ChartRedraw (); Sleep ( 1000 ); //--- теперь будем перемещать точки привязки прямоугольника //--- счетчик цикла int h_steps=bars/ 2 ; //--- перемещаем точки привязки for ( int i= 0 ; i<h_steps; i++) { //--- возьмем следующие значения if (d1<bars- 1 ) d1+= 1 ; if (d2> 1 ) d2-= 1 ; //--- сдвигаем точки if (!RectanglePointChange( 0 ,InpName, 0 ,date[d1],price[p1])) return ; if (!RectanglePointChange( 0 ,InpName, 1 ,date[d2],price[p2])) return ; //--- проверим факт принудительного завершения скрипта if ( IsStopped ()) return ; //--- перерисуем график ChartRedraw (); // задержка в 0.05 секунды Sleep ( 50 ); } //--- задержка в 1 секунду Sleep ( 1000 ); //--- счетчик цикла int v_steps=accuracy/ 2 ; //--- перемещаем точки привязки for ( int i= 0 ; i<v_steps; i++) { //--- возьмем следующие значения if (p1<accuracy- 1 ) p1+= 1 ; if (p2> 1 ) p2-= 1 ; //--- сдвигаем точки if (!RectanglePointChange( 0 ,InpName, 0 ,date[d1],price[p1])) return ; if (!RectanglePointChange( 0 ,InpName, 1 ,date[d2],price[p2])) return ; //--- проверим факт принудительного завершения скрипта if ( IsStopped ()) return ; //--- перерисуем график ChartRedraw (); } //--- задержка в 1 секунду Sleep ( 1000 ); //--- удалим прямоугольник с графика RectangleDelete( 0 ,InpName); ChartRedraw (); //--- задержка в 1 секунду Sleep ( 1000 ); //--- } //+------------------------------------------------------------------+ Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE www.mql5.com OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 ファイル: OBJ_RECTANGLE.mq4 24 kb belaz13 2022.02.21 17:29 #1634 こんにちは、私はMT5上のEAのためのアイデアを持っています。アイデアは、新しいすべて同じグリッド、および同じマーチンゲールではありません。しかし、グリッドの緊張感そのものは、例えば、1.13200で1標準ロットの売り取引を開始するとき、保留中の売り指値注文は 1.13400で2標準ロット、次の注文は1.13800で4ロットに相当するなど、なかなか標準的ではないようです。1ロット=100pipsを基準として、ロットを2倍するごとにグリッドサイズが大きくなることを意味します。 noxter195 2022.02.27 11:45 #1635 友人、ロボット/インジケータが配置されているmt4のウィンドウの名前を取得する方法。例えば(ユーラスド) Vitaly Muzichenko 2022.02.27 11:54 #1636 noxter195 #: 友人、ロボット/インジケータが配置されているmt4のウィンドウの名前を 取得する方法。例えば(ユーラスド) この言葉は何を意味しているのでしょうか? noxter195 2022.02.27 12:50 #1637 Vitaly Muzichenko #:この言葉は何を意味しているのでしょうか? 現在の通貨ペアの名前を取得して、ボタンの名前に変換する必要があります。例えば、eurusdのチャートにインジケータを表示する場合、ボタン名のeurusdの表記を翻訳する必要があるのですが、どうすればよいですか?したがって、他の通貨ペアの場合、他の通貨ペアの名前を翻訳する問題は、それをどう引き上げるかだ。シンボル変数クラッシュ mt Vitaly Muzichenko 2022.02.27 12:55 #1638 noxter195 #: 現在の通貨ペアの名前を取得して、ボタンの名前に変換する必要があります。例えば、eurusdのチャートにインジケータを表示する場合、ボタン名のeurusdの表記を翻訳する必要があるのですが。したがって、他の通貨ペアの場合、他の通貨ペアの名前を翻訳する 懸垂の仕方を質問する。 シンボル変数クラッシュ mt 何もクラッシュせず、MetaTraderが作成されたときから問題なく動作しています。 noxter195 2022.02.27 13:05 #1639 Vitaly Muzichenko #:何もクラッシュすることなく、MetaTraderの誕生以来、完璧に動作しています。 ええ、ありがとうございます。どうやら端末に問題があったようだ。別の端末で試したところ、うまくいきました。 vilka2345 2022.02.27 13:08 #1640 こんにちは、あなたはマーティンとこれらの指標のEAを書く ことができますが、合計TPまたは最初のTPのいずれかのポジションを閉じますか?<*-ex* ファイルが削除されました 1...157158159160161162163164165166167168169170171 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
インジケータを無料で作成することはできますか?
これで良いのでしょうか?
MT4用のインジケーターを書いてくれる人はいないのか...。
タスクになります。
は、与えられた時間分の長方形を描きます。上限と下限は、与えられた時間間隔の最大値と最小値(Inducedで設定)で設定されます。
の例です。
この場合、2022.02.01 2:00 - 2022.02.01 14:00 の時間間隔は、72時間(最小または最大の最も近い点から間隔の始まりまで)で描画されます。
MT4の七面鳥を書くことができる人。
タスク。
与えられた(トルコでの設定)時間数の間、長方形を描きます。上限と下限は、指定された時間間隔(七面鳥で設定)の最大値と最小値によって決定されます。
例。
この場合の時間間隔2022.02.012:00-2022.02.0114:00は72時間描画されます(最も近い最小または最大点から間隔の開始まで)
ここにサンプルスクリプトがあります-ここから引用https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_rectangle
友人、ロボット/インジケータが配置されているmt4のウィンドウの名前を 取得する方法。例えば(ユーラスド)
この言葉は何を意味しているのでしょうか?
この言葉は何を意味しているのでしょうか?
現在の通貨ペアの名前を取得して、ボタンの名前に変換する必要があります。例えば、eurusdのチャートにインジケータを表示する場合、ボタン名のeurusdの表記を翻訳する必要があるのですが。したがって、他の通貨ペアの場合、他の通貨ペアの名前を翻訳する
何もクラッシュせず、MetaTraderが作成されたときから問題なく動作しています。
何もクラッシュすることなく、MetaTraderの誕生以来、完璧に動作しています。
ええ、ありがとうございます。どうやら端末に問題があったようだ。別の端末で試したところ、うまくいきました。