Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1107

 
Igor Makanu:

в OnInit нельзя выполнять что то долго - терминал может выгрузить код

в индикаторе не должен слиип работать

даaaaa, туплю... может, в таком случае, вместо бесконечного цикла в OnInit сделать return из OnCalculate с тем же условием? - пока не залогинился - ничего не считать. там же должно быть вполне определенное число при "нелогине", или -1, или 0, или EMPTY_VALUE

 

Приветствую трейдеров и программистов!

Подскажите, пожалуйста, существует ли возможность использовать нестандартный метод расчета периода для MA (Moving Average) ? Я подразумеваю, что  положение MA на текущем (нулевом) баре будет определяться  не 20 (к примеру) последними барами, а из последних 100 каждым 5м, или просто указать номера баров в истории, начиная от текущего. И, если есть такая возможность, то можно ли функцию задать непосредственно в коде индикатора?

Благодарю за информацию.

 

Здравствуйте. Как вывести символ треугольник вниз и вверх?

есть код

bool OutText(const string            name="Label", 

             const string            text="Label",             // текст

             const int               x=0,                      // координата по оси X

             const int               y=0,                      // координата по оси Y

             const color             clr=clrYellow,               // цвет

             const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // способ привязки

             const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // угол графика для привязки

             const int               font_size=12,             // размер шрифта             

             const string            font="Arial",             // шрифт

             const double            angle=0.0,                // наклон текста

             const bool              back=false,               // на заднем плане

             const bool              selection=false,          // выделить для перемещений

             const bool              hidden=true,              // скрыт в списке объектов

             const long              z_order=0,

             const int               sub_window=0,             // номер подокна

             const long              chart_ID=0               // ID графика

            )                // приоритет на нажатие мышью

  {

//--- сбросим значение ошибки

   ResetLastError();

//--- создадим текстовую метку

   if(ObjectFind(chart_ID,name)==-1)

     {

      if(!ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))

        {

         Print(__FUNCTION__, ": не удалось создать текстовую метку! Код ошибки = ",GetLastError());

         //       return(false);

        }

     }

//--- установим координаты метки

   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);

   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);

//--- установим угол графика, относительно которого будут определяться координаты точки

   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);

//--- установим текст

   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);

//--- отобразим на переднем (false) или заднем (true) плане

   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);

//--- включим (true) или отключим (false) режим перемещения метки мышью

   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);

  }

Как вывести треугольник символ вверх?

Что нужно написать

   OutText("LabelBuy1", ">", 100, 20, clrWhite, ANCHOR_UPPER,CORNER_LEFT_UPPER,14,"Arial"); 

Чтобы получился треугольник вверх?

1



Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
 

Ранее я задавал вопрос как со стороны  библиотеки имитировать функцию Print() для проверки данных поступающих в функции библиотеки и для поиска ошибок, мне дали совет использовать ресурсы с++: т.е. производить запись информации в файл со стороны dll библиотеки. В общем в библиотеке не получается создать файл для записи туда информации, файл не создаётся ни в каталоге проекта, ни папке с роботом, пробовал указывать умолчательный путь ничего не помогает, вывод информации через cout тоже не работает, но наверное и не сможет потому что это не совсем консольное приложение. Кто что может посоветовать?

#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <fstream>//подключаю библиотеку для записи в файл

/*using std::cout;
using std::endl;
using std::cin;*/

using namespace std;

#define _DLLAPI extern "C" __declspec(dllexport)

_DLLAPI int __stdcall Funkt(int qa){//"C:\\Program Files(x86)\\Forex4you\\MQL4\\Experts\\Moyperviyzapisfiles.txt"
        ofstream file;//"C:\\Users\\123\\Documents\\Visual Studio 2012\\Projects\\ConsoleApplication8\\ConsoleApplication8\\Moyperviyzapisfiles.txt"
        //"C:\\Users\\123\\documents\\visual studio 2012\\Projects\\ConsoleApplication8\\Debug\\ConsoleApplication8.dll\\Moyperviyzapisfiles.txt"
        file.open("C:\\Program Files(x86)\\Forex4you\\MQL4\\Experts\\Moyperviyzapisfiles.txt"/*,ios::out*/);//Moy perviy zapis files
        file<<"Moyperviyzapisfiles";//хочу записать эту фразу в файл
        file.close();   
        return 12;}
//если это делать не в библиотеке то работает.
 

Каким образом вместо стандартной картинки в описании ...


... можно поставить свою?


 
Alexandr Sokolov:

Каким образом вместо стандартной картинки в описании ...


... можно поставить свою?


#property icon
 
Artyom Trishkin:
#property icon

Как всё просто... Спасибо!

 

Здравствуйте!

Подскажите, будьте добры, как реализовать обнаружение на графике графических обьектов, нанесенных вручную ( горизонтальная или трендовая линия, например), затем - получение их свойств (уровень цены в нужное время).

 
odyn:

Здравствуйте!

Подскажите, будьте добры, как реализовать обнаружение на графике графических обьектов, нанесенных вручную ( горизонтальная или трендовая линия, например), затем - получение их свойств (уровень цены в нужное время).

Если количество объектов на графике увеличилось, то...
 
odyn:

Здравствуйте!

Подскажите, будьте добры, как реализовать обнаружение на графике графических обьектов, нанесенных вручную ( горизонтальная или трендовая линия, например), затем - получение их свойств (уровень цены в нужное время).

у них префикс стандартизован, например: Trеndline число. Можно искать так: в цикле if(StringFind(ObjectName(0,i),"Trendline")==0) для старых или для новых if(StringFind(sparam,"Trendline")==0))