"<code>"
*/
#property copyright "Copyright © 2017 v2 mods by pips4life. Original: 2010, zznbrm"
#property show_inputs
#import "user32.dll"
int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
int GetWindow(int hWnd,int uCmd);
int GetParent(int hWnd);
#import
#define GW_HWNDFIRST 0
#define GW_HWNDNEXT 2
#define WM_COMMAND 0x0111
extern string INFO__TF_choice = "Current=All_match_this_chart, or: 1 5 15 30 H1 H4 Daily Weekly Monthly"; // Ex: 60 M60 or H1 all work the same.
extern string newTF = "Current"; //Current, or 0, is change all charts to match current-chart TF.
int start()
{
int eintTF = stringToTimeFrame(newTF);
bool blnContinue = true;
int intParent = GetParent( WindowHandle( Symbol(), Period() ) );
int intChild = GetWindow( intParent, GW_HWNDFIRST );
int intCmd;
if( eintTF==0) eintTF = Period();
switch( eintTF )
{
case PERIOD_M1: intCmd = 33137; break;
case PERIOD_M5: intCmd = 33138; break;
case PERIOD_M15: intCmd = 33139; break;
case PERIOD_M30: intCmd = 33140; break;
case PERIOD_H1: intCmd = 35400; break;
case PERIOD_H4: intCmd = 33136; break;
case PERIOD_D1: intCmd = 33134; break;
case PERIOD_W1: intCmd = 33141; break;
case PERIOD_MN1: intCmd = 33334; break;
}
if ( intChild > 0 )
{
if ( intChild != intParent ) PostMessageA( intChild, WM_COMMAND, intCmd, 0 );
}
else blnContinue = false;
while( blnContinue )
{
intChild = GetWindow( intChild, GW_HWNDNEXT );
if ( intChild > 0 )
{
if ( intChild != intParent ) PostMessageA( intChild, WM_COMMAND, intCmd, 0 );
}
else blnContinue = false;
}
// Now do the current window
PostMessageA( intParent, WM_COMMAND, intCmd, 0 );
return(0);
}
//+------------------------------------------------------------------+
int stringToTimeFrame(string tfs)
{
int tf=0;
StringToUpper(tfs); // This changes value of the var.
tfs = StringTrimLeft(StringTrimRight(tfs));
if (tfs=="M0" || tfs=="0" || StringFind(tfs,"CUR",0) >= 0) tf=Period(); // "CUR" *anywhere* in string, e.g. "0-CURRENT" or "CUR"
else if (tfs=="M1" || tfs=="1") tf=PERIOD_M1;
else if (tfs=="M5" || tfs=="5") tf=PERIOD_M5;
else if (tfs=="M15"|| tfs=="15") tf=PERIOD_M15;
else if (tfs=="M30"|| tfs=="30") tf=PERIOD_M30;
else if (tfs=="H1" || tfs=="60") tf=PERIOD_H1;
else if (tfs=="H4" || tfs=="240") tf=PERIOD_H4;
else if (tfs=="DAILY" || tfs=="D1"|| tfs=="D" || tfs=="1440") tf=PERIOD_D1;
else if (tfs=="WEEKLY" || tfs=="W1" || tfs=="W" || tfs=="10080") tf=PERIOD_W1;
else if (tfs=="MONTHLY" || tfs=="MN1" || tfs=="MN" || tfs=="43200") tf=PERIOD_MN1;
else tf=Period(); // Default if no other legal value.
return(tf);
} // end of stringToTimeFrame
Возможно написать данный индикатор с нуля?
Цель, чтобы индикатор отслеживал серию (из заданного числа) последовательных импульсных свечей и появление первой противоположной (сигнальной) свечи в тот момент, когда цена заходит в зону перепроданности или перекупленности индикатора стохастик? Стрелка нужна на сигнальной свече (сигнал на вход). Круги только на тех импульсных свечах, которые находятся в зонах 20/80 стохастика (сигнализирующие о приближении о близости к моменту разворота цены).
USDPump