Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Очень полезен контроль выхода за границы массива с указанием строки в коде. Раньше было: деление на ноль, и ищи, где хочешь. А еще хуже, если ошибка не проявлялась.
Не могли бы вы привести пример как это делать? Не нашел ничего об этой возможности в документации.
Вот именно! Сейчас ничего делать не надо. Откройте вкладку "эксперты" и читайте логи. Если ошибка появится, то вы увидите сообщение об этом. Типа:
array out of range ....... с указанием на номер строки в коде.
Откройте вкладку "эксперты" и читайте логи.
Попробуйте изменить регистр первой буквы имени скрипта/индикатора. Как-то тоже парился https://www.mql5.com/ru/forum/152533/page2#982156
P.S: ну и string менять на char[]
Ответ,павлику!
Вы павлик большои молодец!
ваш код сразу заработал!
теперь можно мышкои запуститъ
скрипт!
Осталось вмонтировать в индикатор
ваш код вставил в индикатор
осталось маленькое препятствие
едитор не хочет признать название
скрипта.я написал название в месте
откуда скрипт должен быть вызван.
осталось только чтобы скрипт был
признан!
может поможешь?
с искренним приветом
панса
Ответ,павлику!
Вы павлик большои молодец!
ваш код сразу заработал!
теперь можно мышкои запуститъ
скрипт!
Осталось вмонтировать в индикатор
ваш код вставил в индикатор
осталось маленькое препятствие
едитор не хочет признать название
скрипта.я написал название в месте
откуда скрипт должен быть вызван.
осталось только чтобы скрипт был
признан!
может поможешь?
с искренним приветом
панса
Если что - помогу
Если что - помогу
Привет,Винину!
большое спасибо
за желание помочь!
Для обзора посылаю как был организован
вызов скрипта компостером
панса
____________________________________
Привет,павлик!
хочу показать на примере
как был организован вызов скрипта
компостером,теперь ето все не работает.
для обзора
панса
//+------------------------------------------------------------------+
//| sample_execute_script.mq4 |
//+------------------------------------------------------------------+
#import "user32.dll"
int RegisterWindowMessageA(string MessageName);
int PostMessageA(int hwnd, int msg, int wparam, string Name);
void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo);
#import
int start()
{
int winHandle = WindowHandle( Symbol(), Period() );
//
//
//
if( signal < 0 && trigl==true && buy == true ) {StartScript( winHandle, "SchliesenProfitOrders" ); }
//
//
//
void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false)
{
int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");
PostMessageA(hWnd, MessageNumber, 16, ScriptName);
if (AutomaticallyAcceptDefaults) { ClearConfigDialog(); }
}
void ClearConfigDialog()
{
Sleep(100);
keybd_event(13, 0, 0, 0);
}
//
//
//
return(0);
Привет,Винину!
большое спасибо
за желание помочь!
Для обзора посылаю как был организован
вызов скрипта компостером
панса
____________________________________
Привет,павлик!
хочу показать на примере
как был организован вызов скрипта
компостером,теперь ето все не работает.
для обзора
панса
Неужели трудно нажать на SRC и вставить код?!
В таком виде должно нормально работать:
И не забывайте про регистр первой буквы скрипта, например, если скрипт "test" не запускается, то стоит попробовать "Test".
С уважением, Павлик ))
В таком виде должно нормально работать:
И не забывайте про регистр первой буквы скрипта, например, если скрипт "test" не запускается, то стоит попробовать "Test".
С уважением, Павлик ))
Привет,павлик!
получил твою доработку и
пытался поместить все в индикатор
однако едитор не хочет
посмотрите что можно сделать
чтобы заработало!
Панса
//+------------------------------------------------------------------+
//| AltrTREND_Signal.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2_alert.mq4 |
//| Ramdass - Conversion only |
//+------------------------------------------------------------------+
#property copyright "Author - OlegVS, GOODMAN"
#property strict
#import "user32.dll"
int RegisterWindowMessageA(uchar &lParam[]);
int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]);
void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo);
#import
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DeepSkyBlue
#property indicator_color2 OrangeRed
#property indicator_width1 1
#property indicator_width2 1
//---- input parameters
extern bool Alert_message=true;
extern int Time_alert_minutes=60; // ????? ????? ?????????? ???? ??? ? 60 ?????.
extern int K = 30;
extern double Kstop = 0.5;
extern int Kperiod = 150;
extern int PeriodADX = 7;//14;
extern int CountBars = 100;
//---- buffers
double val1[];
double val2[];
double AlertTime;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
IndicatorBuffers(1);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,241);
IndicatorBuffers(2);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,242);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
if(CountBars>=Bars)
CountBars=Bars;
SetIndexDrawBegin(0, Bars - CountBars + PeriodADX );
SetIndexDrawBegin(1, Bars - CountBars + PeriodADX );
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
int i, shift, counted_bars = IndicatorCounted();
//----
if(counted_bars<0) return(-1);
//----
int i1, i2, t_per;
double Range, AvgRange, smin, smax, SsMax, SsMin, SSP, price;
bool uptrend, old;
//----
if(Bars <=PeriodADX + 1)
return(0);
//----
for(shift = CountBars - PeriodADX ; shift >= 0; shift--)
{
SSP = MathCeil(Kperiod / iADX(NULL, 0, PeriodADX , PRICE_CLOSE, MODE_MAIN, 1));
Range = 0;
AvgRange = 0;
for(i1 = shift; i1 <= shift + SSP; i1++)
{
AvgRange = AvgRange + MathAbs(High[i1] - Low[i1]);
}
Range = AvgRange / (SSP + 1);
//----
SsMax = High[shift];
SsMin = Low[shift];
for(i2 = shift; i2 <= shift + SSP - 1; i2++)
{
price = High[i2];
if(SsMax < price)
SsMax = price;
price = Low[i2];
if(SsMin >= price)
SsMin = price;
}
//----
smin = SsMin + (SsMax - SsMin)*K / 100;
smax = SsMax - (SsMax - SsMin)*K / 100;
val1[shift] = 0.0;
val2[shift] = 0.0;
if(Close[shift] < smin)
{
uptrend = false;
}
if(Close[shift] > smax)
{
uptrend = true;
}
if(uptrend != old && uptrend == true)
{
val1[shift] = Low[shift] - Range*Kstop;
}
if(uptrend != old && uptrend == false)
{
val2[shift] = High[shift] + Range*Kstop;
}
old = uptrend;
}
void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false)
{
{
char buf[];
StringToCharArray("MetaTrader4_Internal_Message", buf);
int MT4InternalMsg = RegisterWindowMessageA(buf);
StringToCharArray("fPlayer", buf);
SendMessageA(hWnd, MT4InternalMsg, 16, buf);
if (AutomaticallyAcceptDefaults) { ClearConfigDialog(); }
}
void ClearConfigDialog()
{
Sleep(100);
keybd_event(13, 0, 0, 0);
}
//---- Alert
if (Period()<Time_alert_minutes) t_per=Period(); else t_per=Time_alert_minutes; // ???? ??<Time_alert, ????? ????? ?????????? ???? ??? ? ??.
if (Alert_message==true && CurTime()>AlertTime && val1[0]!=0.0)
{
Alert(Symbol()," +++ BUY !!! +++" , " //AltrTrend_Signal_v2_2_alert");
AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60;
//PlaySound("payment.wav");
fPlayer;//script
}
if (Alert_message==true && CurTime()>AlertTime && val2[0]!=0.0)
{
Alert(Symbol()," +++ SELL !!! +++" , " //AltrTrend_Signal_v2_2_alert");
AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60;
// PlaySound("payment.wav");
fPlayer;
}
return(0);
}
//+------------------------------------------------------------------+