- техника мультивалютной торговли?
- Правильный расчет лота от % депо
- Канал на Parabolic SAR
Может что нибудь по проще, не код платформы,а хотя бы индикатор с такими характеристиками (шаблон). Мне было бы интересно
Да, платформа это громко сказано (хотя верно по сути). Можно и шаблоном назвать. Т.к. этот кусок кода общий для всех. А блоки тактик каждый накапливает и вставляет свои.
давай посмотрим конешно
можно и без кода на словах принцип построения
Самый верхний модуль:
int init() { return(0); }
int deinit() { return(0); }
//=========================================================================================================================
int start()
{
startustanovki(); // начальные установки
while(!IsStopped()) // До тех пор, пока пользователь не прекратит исполнение программы
{
kontrol(); // контрольные функции
SymbolPeriod(); // фиксация появления нового бара по любой валютной паре и на любом таймфрейме
if (analiz1>60)
{
Print("======================================================");
Print("Превышение допустимого (60сек) времени обработки !!! ",analiz1,"сек Перезапуск цикла обработки.");
Print("======================================================");
break;
}
//====================== ежечасный перезапуск цикла ========
string text = TimeToStr(TimeCurrent(),TIME_MINUTES);
int index = StringFind(text, ":49", 0); // разрешение на очередной ежечастный однократный перезапуск эксперта (цикла)
if (index==2) {bool perezapusk=true;}
index = StringFind(text, ":50", 0); // профилактический перезапуск цикла делаю за 10 минут до начала нового часа ========
if ((index==2)&&(perezapusk==true))
{
Print("======================================================");
Print(" Профилактический, перезапуск цикла обработки ",TimeToStr(TimeCurrent(),TIME_MINUTES));
Print("======================================================"); perezapusk=false; break;
}
//====================== ежечасный перезапуск цикла ========
ProcSP(); // оперативная циклическая обработка
Sleep(100); // притормози! (замедлитель цикла обработки)
}
return(0); // Управление возвращается терминалу
}
//=========================================================================================================================
подскажите, как вставить на форуме текст модуля, чтоб он смотрелся, как в редакторе?
int init() { return(0); }
int deinit() { return(0); }
//=========================================================================================================================
int start()
{
startustanovki(); // начальные установки
while(!IsStopped()) // До тех пор, пока пользователь не прекратит исполнение программы
{
kontrol(); // контрольные функции
SymbolPeriod(); // фиксация появления нового бара по любой валютной паре и на любом таймфрейме
if (analiz1>60)
{
Print("======================================================");
Print("Превышение допустимого (60сек) времени обработки !!! ",analiz1,"сек Перезапуск цикла обработки.");
Print("======================================================");
break;
}
//====================== ежечасный перезапуск цикла ========
string text = TimeToStr(TimeCurrent(),TIME_MINUTES);
int index = StringFind(text, ":49", 0); // разрешение на очередной ежечастный однократный перезапуск эксперта (цикла)
if (index==2) {bool perezapusk=true;}
index = StringFind(text, ":50", 0); // профилактический перезапуск цикла делаю за 10 минут до начала нового часа ========
if ((index==2)&&(perezapusk==true))
{
Print("======================================================");
Print(" Профилактический, перезапуск цикла обработки ",TimeToStr(TimeCurrent(),TIME_MINUTES));
Print("======================================================"); perezapusk=false; break;
}
//====================== ежечасный перезапуск цикла ========
ProcSP(); // оперативная циклическая обработка
Sleep(100); // притормози! (замедлитель цикла обработки)
}
return(0); // Управление возвращается терминалу
}
//=========================================================================================================================
//====== фиксация появления нового бара по любой валютной паре и на любом таймфрейме ======================================
void SymbolPeriod()
{
int TT=0;
int TC1 = TimeCurrent(); //=== время начала обработки
bool NewBarS=false;
for(int i=0; i<countSymbol; i++) //=== перебор валютных пар
{
bool NewBar=false;
for(int j=0; j<countPeriod; j++) //=== перебор периодов
{
if (isNewBar(i,j)) //=== появился новый бар по текущей валютной паре по текущему таймфрейму
{
//Print("----- новый бар i=",i," ",Symbol_array[i]," j=",j," ",Period_array[j],"мин. ");
TT = 1; //=== появился новый бар, значит нужно замерить время последующей обработки
NewBar = true; NewBarS = true;
//=== появился новый бар на i инструменте на j таймфрейме, можно принимать решения основанные на анализе поведения i-го инструмента на j-ом таймфрейме
ProcSymbolPeriod(i,j); //=== процедуры тактик 101, 102, 103, ...
//Print("----- конец обработки нового бара ");
}
}
if (NewBar==true) //=== появился новый бар(бары) на i инструменте, можно принимать решения основанные на анализе поведения этого инструмента на всех таймфреймах
{
ProcSymbolPeriodS(i); //=== процедуры тактик 201, 202, 203, ...
}
}
if (NewBarS==true) //=== появился новый бар(бары), можно принимать решения основанные на анализе поведения всех инструментов на всех таймфреймах
{
ProcSymbolSPeriodS(); //=== процедуры тактик 301, 302, 303, ...
}
//====================== замер времени обработки процедур после появления нового бара или серии баров ==============
int TC2 = TimeCurrent();
analiz1 = TC2-TC1;
if ((TT==1)&&(analiz1>1)) //=== если нового бара или серии баров не было, то и процедур нет и время не замеряется
{
Print(" Время обработки ",analiz1,"сек.");
}
if (TT==1)
{
// Print("--------------------- конец цикла обработки бара(баров) ----------------");
}
//====================== замер времени обработки процедур после появления нового бара или серии баров ==============
}
//====== фиксация появления нового бара по любой валютной паре и на любом таймфрейме ======================================
//====== фиксация появления нового бара по любой валютной паре и на любом таймфрейме ====================================== void SymbolPeriod() { int TT=0; int TC1 = TimeCurrent(); //=== время начала обработки bool NewBarS=false; for(int i=0; i<countSymbol; i++) //=== перебор валютных пар { bool NewBar=false; for(int j=0; j<countPeriod; j++) //=== перебор периодов { if (isNewBar(i,j)) //=== появился новый бар по текущей валютной паре по текущему таймфрейму { //Print("----- новый бар i=",i," ",Symbol_array[i]," j=",j," ",Period_array[j],"мин. "); TT = 1; //=== появился новый бар, значит нужно замерить время последующей обработки NewBar = true; NewBarS = true; //=== появился новый бар на i инструменте на j таймфрейме, можно принимать решения основанные на анализе поведения i-го инструмента на j-ом таймфрейме ProcSymbolPeriod(i,j); //=== процедуры тактик 101, 102, 103, ... //Print("----- конец обработки нового бара "); } } if (NewBar==true) //=== появился новый бар(бары) на i инструменте, можно принимать решения основанные на анализе поведения этого инструмента на всех таймфреймах { ProcSymbolPeriodS(i); //=== процедуры тактик 201, 202, 203, ... } } if (NewBarS==true) //=== появился новый бар(бары), можно принимать решения основанные на анализе поведения всех инструментов на всех таймфреймах { ProcSymbolSPeriodS(); //=== процедуры тактик 301, 302, 303, ... } //====================== замер времени обработки процедур после появления нового бара или серии баров ============== int TC2 = TimeCurrent(); analiz1 = TC2-TC1; if ((TT==1)&&(analiz1>1)) //=== если нового бара или серии баров не было, то и процедур нет и время не замеряется { Print(" Время обработки ",analiz1,"сек."); } if (TT==1) { // Print("--------------------- конец цикла обработки бара(баров) ----------------"); } //====================== замер времени обработки процедур после появления нового бара или серии баров ============== } //====== фиксация появления нового бара по любой валютной паре и на любом таймфрейме ======================================
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования