juror
Гуру форума
Линейка не подойдёт? https://forexsystemsru.com/threads/dorabotka-botov-sovetnikov-indikatorov-vol-2.77111/post-1871621значения стопа расчитанного по % риска, можно на цену.
Линейка не подойдёт? https://forexsystemsru.com/threads/dorabotka-botov-sovetnikov-indikatorov-vol-2.77111/post-1871621значения стопа расчитанного по % риска, можно на цену.
ySarFBAv2,2Здравствуйте. Можно пожалуйста добавить среднюю линию между двумя красными ( как на скрине это желтая линия). Спасибо!
ySarFBAv2,3Добрый день. Доработайте, пожалуйста, этот индикатор так чтобы средняя линия (желтая) меняла свой цвет при переходе от большего значения к меньшему и наоборот (см. рис). Спасибо.
Привет, спасибо большое! И спасибо за индикатор HalfTrend X2.ySarFBAv2,2
void TralOverlap()
{
switch(overlap)
{
case 1:
case 2:
case 3:
case 4: {ColOver0=clrDeepSkyBlue; ColOver1=clrAqua; Typetral="Трал частичн. перекрытия!";} break;
case 5:
case 6:
case 7:
case 8: {ColOver0=clrGold; ColOver1=clrYellow; Typetral="Трал основн. перекрытия!";} break;
case 9:
case 10:
default: break;
}
switch(overlap)
{
case 10:
case 8:
case 6:
case 4:
case 2:
{
if(!flag)
{
PrOver=NormalizeDouble(Ask,Digits);
flag=true;
if(Info)
{
DrawLine("IOverTP",PrOver,ColOver0,1);
}
}
else if(flag && !flag1 && Ask<PrOver-OverTralStart*Point)
{
flag1=true;
if(Info)
{
DrawLine("IOverTP",PrOver,ColOver1,1);
}
}
else if(flag1)
{
if(Ask<PrOver-(OverTralStart+OverTralSize)*Point)
{
PrOver=Ask+OverTralStart*Point;
if(Info)
{
DrawLine("IOverTP",PrOver,ColOver1,1);
}
}
else if(Ask>=PrOver)
{
if(Info)
{
DeleteSelObj("IOverTP");
DeleteSelObj("ItxtOver");
}
switch(overlap)
{
case 2:
{
int t=0;
if(Cprofit1!=0)
{
for(int i=0; i<ArraySize(Clot); i++)
{
double k=0.0;
k=Cprofit[i]/Cprofit1;
if(Cprofit[i]<0.0 && Clot[i]>k*Lprofit1*Clot[i]/-Cprofit[i])
Clot[i]=MathFloor(k*Lprofit1*Clot[i]/-Cprofit[i]/Step)*Step;
if(Clot[i]>=minLot)
{
if(CloseOrder(Cpos[i],-1,Clot[i])) t++;
}
}
if(t>0) {for(int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i]); flag=false;}
}
}
break;
case 4:
{
m=0;
if(Cprofit1!=0)
{
for( int i=0; i<ArraySize(Clot); i++)
{
double k=0.0;
k=Cprofit[i]/Cprofit1;
if(Cprofit[i]<0.0 && Clot[i]>k*Lprofit1*Clot[i]/-Cprofit[i])
Clot[i]=MathFloor(k*Lprofit1*Clot[i]/-Cprofit[i]/Step)*Step;
if(Clot[i]>=minLot)
{
if(CloseOrder(Cpos[i],OP_SELL,Clot[i])) m++;
}
}
if(m>0) {for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i],OP_SELL); flag=false;}
}
}
break;
case 6:
{
if(CloseOrder(Cpos[0]))
{
for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i]); flag=false;
}
}
break;
case 8:
{
if(CloseOrder(Cpos[0],OP_SELL,Clot[0]))
{
for(int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i],OP_SELL,Llot[i]); flag=false;
}
}
break;
}
if(!flag)
{
flag1 =false;
PrOver =0.0;
overlap=0;
}
}
}
}
break;
case 9:
case 7:
case 5:
case 3:
case 1:
{
if(!flag)
{
PrOver=NormalizeDouble(Bid,Digits);
flag=true;
if(Info)
{
DrawLine("IOverTP",PrOver,ColOver0,1);
}
}// запоминаем уровень один раз
else if(flag && !flag1 && Bid>PrOver+OverTralStart*Point)
{
flag1=true;
if(Info)
{
DrawLine("IOverTP",PrOver,ColOver1,1);
}
}
else if(flag1)
{
if(Bid>PrOver+(OverTralStart+OverTralSize)*Point)
{
PrOver=Bid-OverTralStart*Point;
if(Info)
{
DrawLine("IOverTP",PrOver,ColOver1,1);
}
}
else if(Bid<=PrOver)
{
if(Info)
{
DeleteSelObj("IOverTP");
DeleteSelObj("ItxtOver");
}
switch(overlap)
{
case 1:
{
int t=0;
if(Cprofit1!=0)
{
for( int i=0; i<ArraySize(Clot); i++)
{
double k=0.0;
k=Cprofit[i]/Cprofit1;
if(Cprofit[i]<0.0 && Clot[i]>k*Lprofit1*Clot[i]/-Cprofit[i])
Clot[i]=MathFloor(k*Lprofit1*Clot[i]/-Cprofit[i]/Step)*Step;
if(Clot[i]>=minLot)
{
if(CloseOrder(Cpos[i],-1,Clot[i])) t++;
}
}
if(t>0) {for(int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i]); flag=false;}
}
}
break;
case 3:
{
m=0;
if(Cprofit1!=0)
{
for( int i=0; i<ArraySize(Clot); i++)
{
double k=0.0;
k=Cprofit[i]/Cprofit1;
if(Cprofit[i]<0.0 && Clot[i]>k*Lprofit1*Clot[i]/-Cprofit[i])
Clot[i]=MathFloor(k*Lprofit1*Clot[i]/-Cprofit[i]/Step)*Step;
if(Clot[i]>=minLot)
{
if(CloseOrder(Cpos[i],OP_BUY,Clot[i])) m++;
}
}
if(m>0) {for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i],OP_BUY); flag=false;}
}
}
break;
case 5:
{
if(CloseOrder(Cpos[0]))
{
for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i]); flag=false;
}
}
break;
case 7:
{
if(CloseOrder(Cpos[0],OP_BUY,Clot[0]))
{
for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i],OP_BUY,Llot[i]); flag=false;
}
}
break;
}
if(!flag)
{
flag1 =false;
PrOver =0.0;
overlap=0;
}
}
}
}
break;
}
}
спасибо))),этот!? посмотри....
этот!? посмотри.... индюк ADX_Crossing_TimingAlert...Всем привет!На этой ветке недавно был индикатор (стрелка) в формате mq4 у которого алерт был за пару минут до закрытия свечи (стрелка на нулевом баре появлялась),я его скачала но увы потеряла.Собственно мне только образец кода от неё нужен для своей стрелки.Кто вспомнит-выложите по новой для меня,буду очень признательна!!!)))
panand сказал(а):
тайминг для того,чтобы на период указанного времени в секундах, с момента открытия свечи, не игнорировать сигнал...
после окончания тайминга полностью игнорировать сигнал алерт звука и стрелки, до конца периода текущей свечи.
тогда вот этот код попробуйспасибо))), этот то же пригодиться в хозяйстве))),
только он наоборот -сигналит не до закрытия свечи на заданное время(если стрелка в этот момент есть), а сразу после открытия в течении заданного времени(тайминг в секундах)
bool SndFlag=true; int SndSec; //для Сколько секунд осталось до закрытия свечи??
//------
void HowSecondsCloseTF() //(int MTF)
{
datetime TM, TC, SecLeft;
int T60= TimeFrame*60; //_Period
SndSec = SecondsCloseClockTF;
//------
TM = Time[0] + T60; /*iTime(_Symbol,MTF,0) + T60*/
TC = TimeCurrent();
//------
SecLeft = TM - TC;
if (TM < TC) SecLeft = (T60 - SecLeft) - T60;
//------
if (SndSec > 0)
{
if (SndFlag && SecLeft > SndSec) SndFlag = false;
if (SecLeft <= SndSec && !SndFlag)
{
SndFlag = true;
//---
string message = "До закрытия "+StringTF(TimeFrame)+" осталось "+(int)SecLeft+" секунд!! " + "There are "+(int)SecLeft+" seconds left until the "+StringTF(TimeFrame)+" closes!!";
if (AlertsMessage) Alert(message);
if (AlertsEmail) SendMail(_Symbol,message);
if (AlertsMobile) SendNotification(message);
if (AlertsSound) PlaySound(SoundFile); //"stops.wav" //"news.wav"
}
} //*конец* if (SndSec > 0)....
//---
return;
}
Добрый день. Доработайте, пожалуйста, этот индикатор так чтобы средняя линия (желтая) меняла свой цвет при переходе от большего значения к меньшему и наоборот (см. рис). Спасибо.Привет, спасибо большое! И спасибо за индикатор
ySarFBAv2,2
Огромное СПАСИБО!ySarFBAv2,3
Рисует, если шо.уважаемые программисты , пожалуйста выводите стрелки в буфер и желательно добавить алертПосмотреть вложение 523505