Перейти к содержанию

Доработка индикаторов: общая тема


Рекомендуемые сообщения

  • Ответов 1,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

прикрутилround_LevelsWhite_alert_1.mq4

Перейти

StepMA_Stoch alert.mq4

Перейти

1. Push-уведомления добавлены. Включается/выключаются в настройках NotificationAlerts 2. Текущий TF добавлен как в алерты, так и в PUSH-уведомления. 3. Ошибки исправлены.   Проверя

Перейти
Доработка индикаторов: общая тема Опубликовано


vrank пробуй.


Спасибо огромное, сейчас работает как надо!

Можете ли добавить параллельно с алертом отправку push уведомлений (достатоно наименовании пары в сообщении)?
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Можете ли добавить параллельно с алертом отправку push уведомлений

Пробуй.

Engulfing_mod1.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано


Можете ли добавить параллельно с алертом отправку push уведомлений

Пробуй.


Привет, все работает как надо, очень благодарен

Добавлено: 25-02-2019 06:12:59


Можете ли добавить параллельно с алертом отправку push уведомлений

Пробуй.


В ходе тестов понял что Push - уведомления, не то пальто... если 3 сигнала подряд, индюк уведомления не отправляет (вернее 1 из 3х, остальное блокирует).
Пробобовал тупо в коде поменять Sendnotification на Sendmail , чтобы отправка шла на почту, но при компилировании дает ошибку...
В программировании нуб, хотелось бы заменить Отправку PUSH на отправку MAIL(в тексте сообщения так же достаточно только название инструмента)
Прошу еще раз прощения за беспокойство) это крайний раз) Изменено пользователем vrank
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Доработка индикаторов: общая тема Опубликовано

Я создал индикатор, который рисует прямоугольники.
EA перехватывает последние 2 прямоугольники.
После закрытия 1 или 2 позиций, советник перестает корректно захватывать прямоугольники. Индикатор также начинает работать неправильно...

Ошибок нет в журнале...

Если я не открываю позиции, советник и индикатор работает правильно !!!

Я программирую в течение 5 лет и это в первый раз происходит.

Я понятия не имею, где возникает проблем.

Если у вас есть опыт с такой проблем, был бы рад помочь мне.

Спасибо !!! :(

Это код советника:

void F4ZZR_Check()
{
for(int i_F4Z_1=ObjectsTotal(0,0,OBJ_RECTANGLE); i_F4Z_1>=0 && !IsStopped(); i_F4Z_1--)
{
string ObjName_F4Z_1=ObjectName(i_F4Z_1);
if(StringSubstr(ObjName_F4Z_1,0,L_3_F4Z_EA)==Id_Name_F4Z_EA_B || StringSubstr(ObjName_F4Z_1,0,L_4_F4Z_EA)==Id_Name_F4Z_EA_S)
{
datetime ObjTime2_F4Z_1=(datetime)ObjectGet(ObjName_F4Z_1,OBJPROP_TIME2); //EndTime
int Obj_N_bars_F4Z_1=iBarShift(Symb,F4ZZ_Show_TF,ObjTime2_F4Z_1); //MTF candles from EndTime
if(Obj_N_bars_F4Z_1==4) //If EndTime of Rectangle 1 = 4 bar
{
if(F4ZZR_1_ObjName!=ObjName_F4Z_1) //If New Object
{
F4ZZR_1_ObjName=ObjName_F4Z_1; //Name for Object 1 (Actual)
for(int r=Bars-7; r>=5 && !IsStopped(); r--) //Find new Object 2 - start from bar 5
{
for(int i_F4Z_2=ObjectsTotal(0,0,OBJ_RECTANGLE); i_F4Z_2>=0 && !IsStopped(); i_F4Z_2--)
{
string ObjName_F4Z_2=ObjectName(i_F4Z_2);
if(StringSubstr(ObjName_F4Z_2,0,L_3_F4Z_EA)==Id_Name_F4Z_EA_B || StringSubstr(ObjName_F4Z_2,0,L_4_F4Z_EA)==Id_Name_F4Z_EA_S)
{
datetime ObjTime2_F4Z_2=(datetime)ObjectGet(ObjName_F4Z_2,OBJPROP_TIME2); //EndTime
int Obj_N_bars_F4Z_2=iBarShift(Symb,F4ZZ_Show_TF,ObjTime2_F4Z_2); //MTF candles from EndTime
if(Obj_N_bars_F4Z_2==r) //If EndTime of Rectangle 2 = "r" bar
{
F4ZZR_2_ObjName=ObjName_F4Z_2; //Name for Object 2 (Previw)
break;
}
}
else continue;
}
}
break;
}
else break;
}
}
else continue;
}

Obj_Line_Stile_1_Act=(int)ObjectGet(F4ZZR_1_ObjName,OBJPROP_STYLE); // Dashed line is closed Object 1 (Actual)
Obj_Line_Stile_2_Pre=(int)ObjectGet(F4ZZR_2_ObjName,OBJPROP_STYLE); // Dashed line is closed Object 2 (Preview)

if(StringSubstr(F4ZZR_1_ObjName,0,L_4_F4Z_EA)==Id_Name_F4Z_EA_S) //For Object 1 (Actual) if "Sell"
{
if(Obj_Line_Stile_1_Act!=0) //If Object 1 (Actual) is Dashed line
{
F4ZZR_1_Sig_Act="Buy"; // Signal "Buy" for Object 1 (Actual)
}
else F4ZZR_1_Sig_Act="Sell"; // Signal "Sell" for Object 1 (Actual)
}
if(StringSubstr(F4ZZR_1_ObjName,0,L_3_F4Z_EA)==Id_Name_F4Z_EA_B) //For Object 1 (Actual) if "Buy"
{
if(Obj_Line_Stile_1_Act!=0) //If Object 1 (Actual) is Dashed line
{
F4ZZR_1_Sig_Act="Sell"; // Signal "Sell" for Object 1 (Actual)
}
else F4ZZR_1_Sig_Act="Buy"; // Signal "Buy" for Object 1 (Actual)
}

if(StringSubstr(F4ZZR_2_ObjName,0,L_4_F4Z_EA)==Id_Name_F4Z_EA_S) //For Object 2 (Preview) if "Sell"
{
if(Obj_Line_Stile_2_Pre!=0) //If Object 2 (Preview) is Dashed line
{
F4ZZR_2_Sig_Pre="Buy"; // Signal "Buy" for Object 2 (Preview)
}
else F4ZZR_2_Sig_Pre="Sell"; // Signal "Sell" for Object 2 (Preview)
}
if(StringSubstr(F4ZZR_2_ObjName,0,L_3_F4Z_EA)==Id_Name_F4Z_EA_B) ////For Object 2 (Preview) if "Buy"
{
if(Obj_Line_Stile_2_Pre!=0) //If Object 2 (Preview) is Dashed line
{
F4ZZR_2_Sig_Pre="Sell"; // Signal "Sell" for Object 2 (Preview)
}
else F4ZZR_2_Sig_Pre="Buy"; // Signal "Buy" for Object 2 (Preview)
}

if((F4ZZR_1_Sig_Act=="Sell" && F4ZZR_2_Sig_Pre=="Sell") || (F4ZZR_1_Sig_Act=="Buy" && F4ZZR_2_Sig_Pre=="Buy"))
{
if(F4ZZR_1_Sig_Act=="Sell" && F4ZZR_2_Sig_Pre=="Sell")
{
F4ZZR_Pr_1_Act=ObjectGet(F4ZZR_1_ObjName,OBJPROP_PRICE1);
F4ZZR_Pr_2_Act=ObjectGet(F4ZZR_1_ObjName,OBJPROP_PRICE2);
if(Obj_Line_Stile_1_Act==0) F4ZZR_SL_Pr_1_Act=NormalizeDouble(F4ZZR_Pr_1_Act+(F4ZZR_SL*Point),Digits); //For Sell 1
else F4ZZR_SL_Pr_1_Act=NormalizeDouble(F4ZZR_Pr_2_Act+(F4ZZR_SL*Point),Digits); //For Sell 1

F4ZZR_Pr_1_Pre=ObjectGet(F4ZZR_2_ObjName,OBJPROP_PRICE1);
F4ZZR_Pr_2_Pre=ObjectGet(F4ZZR_2_ObjName,OBJPROP_PRICE2);
if(Obj_Line_Stile_2_Pre==0) F4ZZR_SL_Pr_1_Pre=NormalizeDouble(F4ZZR_Pr_1_Pre+(F4ZZR_SL*Point),Digits); //For Sell 2
else F4ZZR_SL_Pr_1_Pre=NormalizeDouble(F4ZZR_Pr_2_Pre+(F4ZZR_SL*Point),Digits); //For Sell 2
}
if(F4ZZR_1_Sig_Act=="Buy" && F4ZZR_2_Sig_Pre=="Buy")
{
F4ZZR_Pr_1_Act=ObjectGet(F4ZZR_1_ObjName,OBJPROP_PRICE1);
F4ZZR_Pr_2_Act=ObjectGet(F4ZZR_1_ObjName,OBJPROP_PRICE2);
if(Obj_Line_Stile_1_Act==0) F4ZZR_SL_Pr_1_Act=NormalizeDouble(F4ZZR_Pr_1_Act-(F4ZZR_SL*Point),Digits); //For Buy 1
else F4ZZR_SL_Pr_1_Act=NormalizeDouble(F4ZZR_Pr_2_Act-(F4ZZR_SL*Point),Digits); //For Buy 1

F4ZZR_Pr_1_Pre=ObjectGet(F4ZZR_2_ObjName,OBJPROP_PRICE1);
F4ZZR_Pr_2_Pre=ObjectGet(F4ZZR_2_ObjName,OBJPROP_PRICE2);
if(Obj_Line_Stile_2_Pre==0) F4ZZR_SL_Pr_1_Pre=NormalizeDouble(F4ZZR_Pr_1_Pre-(F4ZZR_SL*Point),Digits); //For Buy 2
else F4ZZR_SL_Pr_1_Pre=NormalizeDouble(F4ZZR_Pr_2_Pre-(F4ZZR_SL*Point),Digits); //For Buy 2
}
}
else
{
F4ZZR_Pr_1_Act=0.0;
F4ZZR_Pr_2_Act=0.0;
F4ZZR_SL_Pr_1_Act=0.0;

F4ZZR_Pr_1_Pre=0.0;
F4ZZR_Pr_2_Pre=0.0;
F4ZZR_SL_Pr_1_Pre=0.0;
}

}


И экраны:

Screenshot.png
Screenshot_1.png
Screenshot_2.png

Изменено пользователем SStanly
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
SStanly очень мало информации.
советник вызывает индикатор или только ищет объекты на графике?
прямоугольники рассчитываются независимо или между ними есть связь?
ордера открываются на каждом объекте или есть ещё условия и ордер может не открыться?
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

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

1. Советник только ищет объекты на графике.

2. Прямоугольники рассчитываются независимо.

3. Нет проблем с открытия ордера.

Проблема возникает после открытия / закрытия 2-3 ордера. Не на первой сделке!!!

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

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


Добавлено: 08-03-2019 22:57:38

StringSubstr



StringSubstr(ObjName_F4Z_1, 0, L_3_F4Z_EA)

StringSubstr - Извлекает подстроку из текстовой строки, начинающейся c указанной позиции.

L_3_F4Z_EA - указавает позиции.



Добавлено: 08-03-2019 23:29:43

Это часть кода советнике для открытия ордера:

               if(F4ZZR_Pr_2_Pre>F4ZZR_Pr_2_Act) 
{

if(F4ZZR_Pr_1_Act>=F4ZZR_Pr_2_Pre)
{

Lots=Lots_Next; //0.02 lots
SL_for_Mod_New=NormalizeDouble(F4ZZR_SL_Pr_1_Pre,Digits);

if(Ask>=F4ZZR_Pr_2_Act)
{
CountOrders();
if(CountOrdersSell==0 && CountOrdersSellLimit==0)
{
if(CountOrdersBuy!=0) Close_Orders(OP_BUY);
Open_Orders(OP_SELL,0,SL_for_Mod_New,EmExit_for_Mod);
}

if(NormalizeDouble((F4ZZR_Pr_2_Pre-PenDirection_for_Mod)-Bid,Digits)>=NormalizeDouble(F4ZZR_SL*Point,Digits))
{
CountOrders();
if(CountOrdersSell==1 && CountOrdersSellLimit==0)
{
PenDirection_for_Mod_New=NormalizeDouble((F4ZZR_Pr_2_Pre-PenDirection_for_Mod)-Bid,Digits);
Open_Orders(OP_SELLLIMIT,PenDirection_for_Mod_New,SL_for_Mod_New,EmExit_for_Mod);
}
}
}
else if(F4ZZR_Pr_2_Act>Ask)
{
if(NormalizeDouble((F4ZZR_Pr_2_Act-PenDirection_for_Mod)-Bid,Digits)>NormalizeDouble(F4ZZR_SL*Point,Digits))
{
CountOrders();
if(CountOrdersSell==0 && CountOrdersSellLimit==0)
{
PenDirection_for_Mod_New=NormalizeDouble((F4ZZR_Pr_2_Act-PenDirection_for_Mod)-Bid,Digits);
Open_Orders(OP_SELLLIMIT,PenDirection_for_Mod_New,SL_for_Mod_New,EmExit_for_Mod);
}
}

if(NormalizeDouble((F4ZZR_Pr_2_Pre-PenDirection_for_Mod)-Bid,Digits)>NormalizeDouble(F4ZZR_SL*Point,Digits))
{
CountOrders();
if(CountOrdersSell==0 && CountOrdersSellLimit==1)
{
PenDirection_for_Mod_New=NormalizeDouble((F4ZZR_Pr_2_Pre-PenDirection_for_Mod)-Bid,Digits);
Open_Orders(OP_SELLLIMIT,PenDirection_for_Mod_New,SL_for_Mod_New,EmExit_for_Mod);
}
}
}

}


и код функции для открытия ордеров:

void Open_Orders(int TypeOrder,double PenDirection=0.0,double SL=0.0,double EmExit=0.0)
{
OpenPrice=0; PenEx=0;
double New_PenDir=0.0,Ask_Open=0.0,Bid_Open=0.0;

double New_SL=SL,New_EmExit=EmExit;
ModSL=0.0;

string Text;
while(true && !IsStopped())
{
bool OpOdrers=false;

New_PenDir=PenDirection;

Minimal_Distance();

if(!IsTesting() && !IsOptimization())
{
int CountErrServer=0,CountMaxErrServer=10;
while(IsTradeContextBusy()==true && CountErrServer {
CountErrServer+=1;
Print("Send_Orders : IsTradeContextBusy() Errors = ",CountErrServer);
Sleep(50);
}
RefreshRates();
}

Ask_Open=Ask;
Bid_Open=Bid;

switch(TypeOrder)
{
case 0: //для ордер Buy.
{
OpenPrice=Ask_Open;
PenEx=0;

if(New_SL!=0.0)
{
if((OpenPrice-New_SL)>Min_Dist && (Bid_Open-Min_Dist)>New_SL) ModSL=New_SL;
else
{
ModSL=Bid_Open-Min_Dist-New_EmExit;
Print("BuyOrder emergency exit StopLoss at : ",DoubleToStr(ModSL,Digits));
}
}

Text="Buy";
OpOdrers=true;
break;
}
case 1: //для ордер Sell.
{
OpenPrice=Bid_Open;
PenEx=0;

if(New_SL!=0.0)
{
if((New_SL-OpenPrice)>Min_Dist && (Ask_Open+Min_Dist) else
{
ModSL=Ask_Open+Min_Dist+New_EmExit;
Print("SellOrder emergency exit StopLoss at : ",DoubleToStr(ModSL,Digits));
}
}

Text="Sell";
OpOdrers=true;
break;
}
case 2: //для ордер BuyLimit.
{
OpenPrice=Ask_Open-New_PenDir;
if(Ask_Open-OpenPrice {
OpenPrice-=EmExit_for_Mod;
Alert(Symb+", The price for opening BuyLimit is corrected with Emergency Exit.");
if(Ask_Open-OpenPrice {
Alert(Symb+", The price for opening BuyLimit does not meet the requirements of MQL4.");
break;
}
}

if(New_SL!=0.0)
{
if((OpenPrice-New_SL)>Min_Dist) ModSL=New_SL;
else
{
ModSL=Bid_Open-Min_Dist-New_EmExit;
Print("BuyOrder emergency exit StopLoss at : ",DoubleToStr(ModSL,Digits));
}
}

PenEx=(Pending_Expiration==0) ? 0 :(TimeCurrent()+60*Pending_Expiration);
Text="BuyLimit";
OpOdrers=true;
break;
}
case 3: //для ордер SellLimit.
{
OpenPrice=Bid_Open+New_PenDir;
if(OpenPrice-Bid_Open {
OpenPrice+=EmExit_for_Mod;
Alert(Symb+", The price for opening SellLimit is corrected with Emergency Exit.");
if(OpenPrice-Bid_Open {
Alert(Symb+", The price for opening SellLimit does not meet the requirements of MQL4.");
break; //Изход от цикъла "switch".
}
}

if(New_SL!=0.0)
{
if((New_SL-OpenPrice)>Min_Dist) ModSL=New_SL;
else
{
ModSL=Ask_Open+Min_Dist+New_EmExit;
Print("SellOrder emergency exit StopLoss at : ",DoubleToStr(ModSL,Digits));
}
}

PenEx=(Pending_Expiration==0) ? 0 :(TimeCurrent()+60*Pending_Expiration);
Text="SellLimit";
OpOdrers=true;
break;
}
case 4: //для ордерр BuyStop.
{
OpenPrice=Ask_Open+New_PenDir;
if(OpenPrice-Ask_Open {
OpenPrice+=EmExit_for_Mod;
Alert(Symb+", The price for opening BuyStop is corrected with Emergency Exit.");
if(OpenPrice-Ask_Open {
Alert(Symb+", The price for opening BuyStop does not meet the requirements of MQL4.");
break; //Изход от цикъла "switch".
}
}

if(New_SL!=0.0)
{
if((OpenPrice-New_SL)>Min_Dist) ModSL=New_SL;
else
{
ModSL=Bid_Open-Min_Dist-New_EmExit;
Print("BuyOrder emergency exit StopLoss at : ",DoubleToStr(ModSL,Digits));
}
}

PenEx=(Pending_Expiration==0) ? 0 :(TimeCurrent()+60*Pending_Expiration);
Text="BuyStop";
OpOdrers=true;
break;
}
case 5: //для ордер SellStop.
{
OpenPrice=Bid_Open-New_PenDir;
if(Bid_Open-OpenPrice {
OpenPrice-=EmExit_for_Mod;
Alert(Symb+", The price for opening SellStop is corrected with Emergency Exit.");
if(Bid_Open-OpenPrice {
Alert(Symb+", The price for opening SellStop does not meet the requirements of MQL4.");
break; //Изход от цикъла "switch".
}
}

if(New_SL!=0.0)
{
if((New_SL-OpenPrice)>Min_Dist) ModSL=New_SL;
else
{
ModSL=Ask_Open+Min_Dist+New_EmExit;
Print("SellOrder emergency exit StopLoss at : ",DoubleToStr(ModSL,Digits));
}
}

PenEx=(Pending_Expiration==0) ? 0 :(TimeCurrent()+60*Pending_Expiration);
Text="SellStop";
OpOdrers=true;
break;
}
}

if(OpOdrers==false) break;
//---------------------------------------------------
if(TypeOrder==OP_BUY || TypeOrder==OP_SELL)
{
Print("The Order ",Text," request was sent to the server. Waiting for reply...");
int Ticket=OrderSend(Symb,TypeOrder,Lots,NormalizeDouble(OpenPrice,Digits),Slippage_for_Open,NormalizeDouble(ModSL,Digits),0,"My order",MagicNumber,PenEx,clrGreen);
if(Ticket>-1)
{
if(Alerts==true)
{
Alert(Symb,", Order ",Text," # ",Ticket,". Trade is Opening...");
if(Alert_Sound_for_Open!="")
{
PlaySound(Alert_Sound_for_Open);
}
}
if(ScreenShots==true)
{
string Info=Symb+"_"+(string)Ticket+"_"+"Open_"+Text+".gif";
ChartScreenShot(0,Info,1920,1080,ALIGN_RIGHT);
}
break;
}
else
{
int CheckError;
CheckError=GetLastError();
if(CheckError!=ERR_NO_ERROR)
{
if(Fun_Order_Error(GetLastError())==1) continue;
else if(Fun_Order_Error(GetLastError())==0) break;
}
}
}
else
{
Print("The Order ",Text," request was sent to the server. Waiting for reply...");
int Ticket=OrderSend(Symb,TypeOrder,Lots,NormalizeDouble(OpenPrice,Digits),Slippage_for_Open,NormalizeDouble(ModSL,Digits),0,"My order",MagicNumber,PenEx,clrGreen);
if(Ticket>-1)
{
if(Alerts==true)
{
Alert(Symb,", Order ",Text," # ",Ticket,". Trade is Opening...");
if(Alert_Sound_for_Open!="")
{
PlaySound(Alert_Sound_for_Open);
}
}
if(ScreenShots==true)
{
string Info=Symb+"_"+(string)Ticket+"_"+"Open_"+Text+".gif";
ChartScreenShot(0,Info,1920,1080,ALIGN_RIGHT);
}
break;
}
else
{
int CheckError;
CheckError=GetLastError();
if(CheckError!=ERR_NO_ERROR)
{
if(Fun_Order_Error(GetLastError())==1) continue;
else if(Fun_Order_Error(GetLastError())==0) break;
}
}
}
}
}


:) Изменено пользователем SStanly
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

string ObjName_F4Z_1=ObjectName(i_F4Z_1); - Вы получаете имя i-го графического объекта на графике, а там, после открытия/закрытия ордеров, последними уже стрелки идут, а Вам нужен перебор только по прямоугольникам.


Добавлено: 09-03-2019 05:04:54

У Вас получается следующее. Количество итераций в цикле перебора графических объектов у Вас равно количеству прямоугольников. Запрос же имени объекта у Вас из списка всех объектов. После открыти и закрытия ордеров в списке объектов находятся стрелки, поэтому последние прямоугольники уже никогдс алгоритмом не обрабатываются. Без обид, но для 5-ти летнего опыта, странно такие баги самому не найти. Изменено пользователем ZloyZam
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано


string ObjName_F4Z_1=ObjectName(i_F4Z_1); - Вы получаете имя i-го графического объекта на графике, а там, после открытия/закрытия ордеров, последними уже стрелки идут, а Вам нужен перебор только по прямоугольникам.


Добавлено: 09-03-2019 05:04:54

У Вас получается следующее. Количество итераций в цикле перебора графических объектов у Вас равно количеству прямоугольников. Запрос же имени объекта у Вас из списка всех объектов. После открыти и закрытия ордеров в списке объектов находятся стрелки, поэтому последние прямоугольники уже никогдс алгоритмом не обрабатываются. Без обид, но для 5-ти летнего опыта, странно такие баги самому не найти.


Спасибо !!!
Никогда не поздно делать глупые ошибки ...
:d
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Всем привет!
Попрошу умеющих модернизировать стандартный индикатор Volumes для мт5.
Мне нужно чтобы столбик объема окрашивался в отличный от основного цвет при условии, что он больше каждого из четырех, указанных мной в настройках.
Заранее благодарю)

Изменено пользователем ashpi
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Доброго времени суток. Помогите пож. прикрутить алерт к индикатору


Приветствую.

NSNDHistory_arrows.mq4

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Всем бобра! Усть один очень симпатичный индикатор, Professional Trend Indicator.ex4, его даже продают за приемлемые деньги на wereallytrade, но так и не получилось договориться его подправить для применения в автоматической торговле.
Есть сломанная версия, но опять же в формате ex4.
Так вот, насколько актуальна сейчас декомпиляция сломанной версии, абы вырезать все навороты для ручной торговли и поменять константы?
Есть ли у кого приблуда для декомпиляции, может даже за приемлемую цену?

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Есть ли у кого приблуда для декомпиляции, может даже за приемлемую цену?

приблуд нет, последняя умерла года 2 назад. Вырезать навороты не получится, поменять константы в принципе возможно, но нужно искать хакера и платить деньги. Подсказать не смогу.
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано


Всем бобра! Усть один очень симпатичный индикатор, Professional Trend Indicator.ex4, его даже продают за приемлемые деньги на wereallytrade, но так и не получилось договориться его подправить для применения в автоматической торговле.
Есть сломанная версия, но опять же в формате ex4.
Так вот, насколько актуальна сейчас декомпиляция сломанной версии, абы вырезать все навороты для ручной торговли и поменять константы?
Есть ли у кого приблуда для декомпиляции, может даже за приемлемую цену?


А связаться с разработчиками, заказать им изменения, заплатить копеечку и пользоваться в свое удовольствие не пробовали? Или по "русски" халяву, дайте халяву? Хак дороже по любому выйдет.
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Ув. прогеры помогите с алертом. так то он сигналит но не пишет на какой паре ... в оповещении пишет start long/Short.

Индикатор_WPRSI_signal6SoundAlarmf.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано


Ув. прогеры помогите с алертом. так то он сигналит но не пишет на какой паре ... в оповещении пишет start long/Short.


Готово. Всего то нужно подставить валютную пару до кавычек _Symbol, чтоб получилось так Alert(_Symbol+" WPRSI: Start Long"). И добавил название индикатора.
Да команду PlaySound() совместно с Alert() бессмысленно ставить.
PlaySound() Воспроизводит звуковой файл.
Alert() Воспроизводит звуковой файл и отображает диалоговое окно, содержащее пользовательские данные.

Индикатор_WPRSI_signal6SoundAlarmf.mq4

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Здравствуйте! Помогите, пожалуйста с алертом! Индикатор BetterVolume 1.4 нужен алерт на E-mail о появлении свечи раскрашенной в белый или красный цвет (завершенной свечи) и возможностью запрещать или разрешать в меню отправку по одному и другому сигналу. Тестил из подборки с сайта индикаторы. Одни трезвонят на каждую свечу о смене цвета или направления (BetterVolume 1.5 Alerts nmc), другие сигналят там где свечи не окрашивались (BetterVolume 1.4_Alert).

BetterVolume_1.4.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано


Здравствуйте! Помогите, пожалуйста с алертом! Индикатор BetterVolume 1.4 нужен алерт на E-mail о появлении свечи раскрашенной в белый или красный цвет (завершенной свечи) и возможностью запрещать или разрешать в меню отправку по одному и другому сигналу.


Приветствую. Готово.

BetterVolume_1.4.mq4

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Добрый день, уважаемые программисты сделайте пожалуйста, чтобы звуковой и визуальный сигнал в индикаторе появлялся сразу после появления сигнальной стрелки, сейчас сигнал появляется после закрытия свечи. Спасибо!!!

DeltaForce_Indicator.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Привет всем!
Хочу получить сигнал в момент проставления стрелки в индикаторе BAMSBUNG-NO REPAINT, но почему-то у меня все время одно и тоже число, а стрелки проставляются.

Подскажите как мне получить данный сигнал?

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...