1. Хочу открыть ордер типа "Немедленное исполнение". Выставляю уровни Стоп и Профит, нажимаю Sell. Вылетает сообщение "Цена изменилась". Нажимаю "ОК". Нажимаю еще раз Sell. Открываются ДВА одинаковых ордера на продажу. То же самое происходит при установке отложенного ордера. Тут совсем непонятно - каким боком влияет на этот процесс изменение цены? Но после повторного нажатия "Установить..." в списке появляется два одинаковых отложенных ордера.
2. Хочу закрыть ордер. При этом есть возможность открыть новый ордер. О том, что это не есть хорошо уже писАли. Аргументы разработчиков (что это - очень хорошо) я читал. Не думаю, что я самый несобранный и невнимательный, но, тем не менее, уже дважды воспользовался этой возможностью (открыть), когда хотел закрыть ордер. Один ли я? Интересно. Может хотя бы кнопки "разнести"? Типа так:
3. При попытке изменить Стоп или Профит в уже открытом ордере выдается сообщение "Цена изменилась".
4. Окно "открытия ордера" закрывается нажатием кнопки Esc, а окно "модификации" почему-то нет.
5. Есть несколько стилей ввода цифр: 1) Стоп, Профит, Цена - ДО запятой (вставка); 2) Стоп, Профит, Цена - ПОСЛЕ запятой (сдвиг вправо с обрезанием до 4-х цифр); 3) Сигналы (сдвиг вправо без обрезания). Может разработчик остановится на чем-нибудь одном? А вообще, мы и сами все сдвинем и заменим.
при расположении OBJ_LABEL в любом, кроме левого верхнего, углу, с координатами привязки x=0 y=0, обьект не рисуется. Если задать x=1 y=1, всё нормально.....
Так задумано ? :)
K=33-RISK;
If firstTime then
{
loopbegin = CountBars;
If loopbegin>(Bars-2*SSP+1) Then loopbegin=Bars-2*SSP+1;
firstTime=False;
};
For shift = loopbegin DownTo 0 Begin
SsMax = High[Highest(MODE_HIGH,shift+SSP-1,SSP)];
SsMin = Low[Lowest(MODE_LOW,shift+SSP-1,SSP)];
smin = SsMin+(SsMax-SsMin)*K/100;
smax = SsMax-(SsMax-SsMin)*K/100;
val1=0;
val2=0;
If C[shift]<smin Then
{val1=High[shift];
val2=Low[shift];
};
If C[shift]>smax Then
{val2=High[shift];
val1=Low[shift];
};
SetIndexValue(shift,val1);
SetIndexValue2(shift,val2);
If shift>0 then loopbegin=loopbegin-1;
End;
Метатрейдер 4
//+------------------------------------------------------------------+
//| SilverTrend .mq4 |
//| SilverTrend rewritten by CrazyChart |
//| http://viac.ru/ |
//+------------------------------------------------------------------+
#property copyright "SilverTrend rewritten by CrazyChart"
#property link "http://viac.ru/ "
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
//---- input parameters
extern int RISK=3;
extern int CountBars=300;
extern int SSP=9;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_HISTOGRAM,1,1,Red);
SetIndexBuffer(0,ExtMapBuffer1);
//SetIndexLabel(0,"fffff");
// SetIndexArrow(1,218);
SetIndexStyle(1,DRAW_HISTOGRAM,1,1,Blue);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//---- TODO: add your code here
bool firstTime=True;
int i, loopbegin;
double SsMax, SsMin, K, val1, val2, smin, smax;
//SetLoopCount(0);
K=33-RISK;
if (firstTime==true) {
loopbegin = CountBars;
if (loopbegin>(Bars-2*SSP+1)) loopbegin=Bars-2*SSP+1;
firstTime=False;
};
for(i=loopbegin;i>=0;i--) {
SsMax = High[Highest(MODE_HIGH,i+SSP-1,SSP)];
SsMin = Low[Lowest(MODE_LOW,i+SSP-1,SSP)];
smin = SsMin+(SsMax-SsMin)*K/100;
smax = SsMax-(SsMax-SsMin)*K/100;
//ExtMapBuffer1[i]=0;
//ExtMapBuffer2[i]=0;
if (Close[i]<smin) {
ExtMapBuffer1[i]=High[i];
ExtMapBuffer2[i]=Low[i];
};
if (Close[i]>smax) {
ExtMapBuffer2[i]=High[i];
ExtMapBuffer1[i]=Low[i];
};
if (i>0) loopbegin=loopbegin-1;
};
//----
return(0);
}
//+--------------------
Также хочу спросить, появится ли контекстный словарь, как в МТ3? поиск по словарю?
Не удобно пользоваться тиковым графиком, потому что получаются такие горы, если МТ включен не постоянно. Если не возможно организовать минимальную подкачку тиков при запуске МТ, то сделайте возможность очистки окна тикового графика.
Для наглядности прикрепляю картинку.
Создаем ярлык к terminal.exe
В свойствах ярлыка на закладке Shortcut в текстбоксе Run выбираем Minimized. Жмем Apply. Закрываем.
Кликаем на ярлык. Запускается терминал в свернутом режиме, но когда разворачиваем - все тулбары выстроились вертикально в ряд а навигаторы горизонтально в ряд. В третьем метатрейдере все ок.
Можно ли поправить?
Не всегда нужно запускать терминалы в развернутом на весь экран режиме...
Когда они работают сами по себе... и их штук 5 сразу...
Отправил! Получили?
То же самое происходит при установке отложенного ордера. Тут совсем непонятно - каким боком влияет на этот процесс изменение цены? Но после повторного нажатия "Установить..." в списке появляется два одинаковых отложенных ордера.
2. Хочу закрыть ордер. При этом есть возможность открыть новый ордер. О том, что это не есть хорошо уже писАли. Аргументы разработчиков (что это - очень хорошо) я читал. Не думаю, что я самый несобранный и невнимательный, но, тем не менее, уже дважды воспользовался этой возможностью (открыть), когда хотел закрыть ордер. Один ли я? Интересно.
Может хотя бы кнопки "разнести"? Типа так:
Sell ___________ Buy
1234/1236
Закрыть #7777777 .....
3. При попытке изменить Стоп или Профит в уже открытом ордере выдается сообщение "Цена изменилась".
4. Окно "открытия ордера" закрывается нажатием кнопки Esc, а окно "модификации" почему-то нет.
5. Есть несколько стилей ввода цифр:
1) Стоп, Профит, Цена - ДО запятой (вставка);
2) Стоп, Профит, Цена - ПОСЛЕ запятой (сдвиг вправо с обрезанием до 4-х цифр);
3) Сигналы (сдвиг вправо без обрезания).
Может разработчик остановится на чем-нибудь одном? А вообще, мы и сами все сдвинем и заменим.
Так задумано ? :)
В одном из индикаторов, в МТ3 была такая конструкция:
SsMax = High[Highest(MODE_HIGH,shift+SSP-1,SSP)];
SsMin = Low[Lowest(MODE_LOW,shift+SSP-1,SSP)];
Я переписал её для МТ4:
SsMax = High[Highest(NULL,0,MODE_HIGH,SSP,i+SSP-1)];
SsMin = Low[Lowest(NULL,0,MODE_LOW,SSP,i+SSP-1)];
Результат получается абсолютно другой.
Где я ошибся? Или функции Highest && Lowest глючат? На всякий случай вот код индикаторы в МТ 3 и МТ 4
Метатрейдер 3
/*[[
Name := SilverTrend
Author := Copyright © 2003, VIAC.RU AlexSilver,OlegVS,GOODMAN
Link := http://viac.ru/
Separate Window := No
First Color := Red
First Draw Type := Histogram
Use Second Data := Yes
Second Color := Blue
Second Draw Type := Histogram
Second Symbol := 218
]]*/
Inputs : RISK(3),CountBars(300),SSP(9);
Variables : firstTime(True),shift(0), loopbegin(0);
Variables : smin(0), smax(0), SsMax(0), SsMin(0) ,K(0),val1(0),val2(0);
//SetLoopCount(0);
K=33-RISK;
If firstTime then
{
loopbegin = CountBars;
If loopbegin>(Bars-2*SSP+1) Then loopbegin=Bars-2*SSP+1;
firstTime=False;
};
For shift = loopbegin DownTo 0 Begin
SsMax = High[Highest(MODE_HIGH,shift+SSP-1,SSP)];
SsMin = Low[Lowest(MODE_LOW,shift+SSP-1,SSP)];
smin = SsMin+(SsMax-SsMin)*K/100;
smax = SsMax-(SsMax-SsMin)*K/100;
val1=0;
val2=0;
If C[shift]<smin Then
{val1=High[shift];
val2=Low[shift];
};
If C[shift]>smax Then
{val2=High[shift];
val1=Low[shift];
};
SetIndexValue(shift,val1);
SetIndexValue2(shift,val2);
If shift>0 then loopbegin=loopbegin-1;
End;
Метатрейдер 4
//+------------------------------------------------------------------+ //| SilverTrend .mq4 | //| SilverTrend rewritten by CrazyChart | //| http://viac.ru/ | //+------------------------------------------------------------------+ #property copyright "SilverTrend rewritten by CrazyChart" #property link "http://viac.ru/ " #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue //---- input parameters extern int RISK=3; extern int CountBars=300; extern int SSP=9; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(2); SetIndexStyle(0,DRAW_HISTOGRAM,1,1,Red); SetIndexBuffer(0,ExtMapBuffer1); //SetIndexLabel(0,"fffff"); // SetIndexArrow(1,218); SetIndexStyle(1,DRAW_HISTOGRAM,1,1,Blue); SetIndexBuffer(1,ExtMapBuffer2); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- TODO: add your code here bool firstTime=True; int i, loopbegin; double SsMax, SsMin, K, val1, val2, smin, smax; //SetLoopCount(0); K=33-RISK; if (firstTime==true) { loopbegin = CountBars; if (loopbegin>(Bars-2*SSP+1)) loopbegin=Bars-2*SSP+1; firstTime=False; }; for(i=loopbegin;i>=0;i--) { SsMax = High[Highest(MODE_HIGH,i+SSP-1,SSP)]; SsMin = Low[Lowest(MODE_LOW,i+SSP-1,SSP)]; smin = SsMin+(SsMax-SsMin)*K/100; smax = SsMax-(SsMax-SsMin)*K/100; //ExtMapBuffer1[i]=0; //ExtMapBuffer2[i]=0; if (Close[i]<smin) { ExtMapBuffer1[i]=High[i]; ExtMapBuffer2[i]=Low[i]; }; if (Close[i]>smax) { ExtMapBuffer2[i]=High[i]; ExtMapBuffer1[i]=Low[i]; }; if (i>0) loopbegin=loopbegin-1; }; //---- return(0); } //+--------------------Также хочу спросить, появится ли контекстный словарь, как в МТ3? поиск по словарю?
Функции Highest() и Lowest() в МТ3 и МТ4 совсем не похожи по параметрам!
Для наглядности прикрепляю картинку.
Код
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
Print(TimeSeconds(CurTime()));
return(0);
}
Выдает следуюющее :
2005.02.03 22:40:27 Error_Expert GBPUSD,H4: 28
2005.02.03 22:40:04 Error_Expert GBPUSD,H4: 5
2005.02.03 22:40:01 Error_Expert GBPUSD,H4: 2
2005.02.03 22:39:14 Error_Expert GBPUSD,H4: 15324944
2005.02.03 22:39:14 Error_Expert GBPUSD,H4: 15
2005.02.03 22:39:13 Error_Expert GBPUSD,H4: 13
2005.02.03 22:38:47 Error_Expert GBPUSD,H4: 47
2005.02.03 22:38:42 Error_Expert GBPUSD,H4: 42
2005.02.03 22:38:37 Error_Expert GBPUSD,H4: 37
2005.02.03 22:38:35 Error_Expert GBPUSD,H4: 35
2005.02.03 22:38:25 Error_Expert GBPUSD,H4: 26
2005.02.03 22:38:16 Error_Expert GBPUSD,H4: 17
2005.02.03 22:38:04 Error_Expert GBPUSD,H4: 5
2005.02.03 22:37:53 Error_Expert GBPUSD,H4: 53
2005.02.03 22:37:46 Error_Expert GBPUSD,H4: 47
2005.02.03 22:37:46 Error_Expert GBPUSD,H4: 46
2005.02.03 22:37:33 Error_Expert GBPUSD,H4: 34
2005.02.03 22:37:05 Error_Expert GBPUSD,H4: 6
2005.02.03 22:37:04 Error_Expert GBPUSD,H4: 4
2005.02.03 22:37:03 Error_Expert GBPUSD,H4: 15324944
2005.02.03 22:37:02 Error_Expert GBPUSD,H4: 3
2005.02.03 22:36:59 Error_Expert GBPUSD,H4: 59
2005.02.03 22:36:56 Error_Expert GBPUSD,H4: 56
2005.02.03 22:36:54 Error_Expert GBPUSD,H4: 55
2005.02.03 22:36:53 Error_Expert GBPUSD,H4: 53
2005.02.03 22:36:47 Error_Expert GBPUSD,H4: 48
2005.02.03 22:36:45 Error_Expert GBPUSD,H4: 45
2005.02.03 22:36:41 Error_Expert GBPUSD,H4: 42
2005.02.03 22:36:39 Error_Expert GBPUSD,H4: 39
2005.02.03 22:36:08 Error_Expert GBPUSD,H4: 8
2005.02.03 22:35:46 Error_Expert GBPUSD,H4: 46
2005.02.03 22:35:44 Error_Expert GBPUSD,H4: 45
2005.02.03 22:35:40 Error_Expert GBPUSD,H4: 41
2005.02.03 22:35:37 Error_Expert GBPUSD,H4: 38
2005.02.03 22:35:36 Error_Expert GBPUSD,H4: 36
2005.02.03 22:35:34 Error_Expert GBPUSD,H4: 35
2005.02.03 22:35:33 Error_Expert GBPUSD,H4: 33
2005.02.03 22:35:31 Error_Expert GBPUSD,H4: 31
2005.02.03 22:35:25 Error_Expert GBPUSD,H4: 26
2005.02.03 22:35:21 Error_Expert GBPUSD,H4: initialized
Эти восьмизначные цифры что дожны быть секундами это ...?
Создаем ярлык к terminal.exe
В свойствах ярлыка на закладке Shortcut в текстбоксе Run выбираем Minimized. Жмем Apply. Закрываем.
Кликаем на ярлык. Запускается терминал в свернутом режиме, но когда разворачиваем - все тулбары выстроились вертикально в ряд а навигаторы горизонтально в ряд. В третьем метатрейдере все ок.
Можно ли поправить?
Не всегда нужно запускать терминалы в развернутом на весь экран режиме...
Когда они работают сами по себе... и их штук 5 сразу...
Да, какой-то странный артефакт. У меня тоже проявился. Исправим к завтрашнему билду.