[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 984

 
gyvenor:

Спасибо.

Можно ли в эту таблицу добавить колонки со значением индикатора? Например значение MA на данном баре. Или есть ли фрактал вверх/вниз?

МА и фрактал в самом экселе сделайте, вставтьте у ячейку формулу. делов на минуту.
 

Здравствуйте. Не подскажете, есть ли где-то вообще в открытом доступе  история сделок (стейтмент) Л.Вильямса с его легендарной победы на чемпе 1987г ? Любопытно было бы взглянуть)

 
Techno:
отчет нормальный прикрепи. А лучше полный отчет, там и видно будет.

Символ EURUSD (Euro vs US Dollar)
Период 30 Минут (M30) 1999.01.06 15:30 - 2010.11.09 21:59
Модель По ценам открытия (только для советников с явным контролем открытия баров)
Параметры
Баров в истории 143757 Смоделировано тиков 287336 Качество моделирования n/a
Ошибки рассогласования графиков 0
Начальный депозит 1000000.00
Чистая прибыль 23885.09 Общая прибыль 50787.58 Общий убыток -26902.49
Прибыльность 1.89 Матожидание выигрыша 2.66
Абсолютная просадка 73.00 Максимальная просадка 355.90 (0.03%) Относительная просадка 0.03% (355.90)
Всего сделок 8996 Короткие позиции (% выигравших) 0 (0.00%) Длинные позиции (% выигравших) 8996 (87.36%)
Прибыльные сделки (% от всех) 7859 (87.36%) Убыточные сделки (% от всех) 1137 (12.64%)
Самая большая прибыльная сделка 10.50 убыточная сделка -40.40
Средняя прибыльная сделка 6.46 убыточная сделка -23.66
Максимальное количество непрерывных выигрышей (прибыль) 110 (730.00) непрерывных проигрышей (убыток) 5 (-125.00)
Максимальная непрерывная прибыль (число выигрышей) 730.00 (110) непрерывный убыток (число проигрышей) -125.00 (5)
Средний непрерывный выигрыш 9 непрерывный проигрыш 1
Graph
Время Тип Ордер Объём Цена S / L T / P
 

Разница между М1 все тики и М30 минимльна.

Символ EURUSD (Euro vs US Dollar)
Период 1 Минута (M1) 1999.10.01 03:17 - 2010.11.09 21:06
Модель Все тики (наиболее точный метод на основе всех наименьших доступных таймфреймов)
Параметры
Баров в истории 3798097 Смоделировано тиков 37584894 Качество моделирования 25.00%
Ошибки рассогласования графиков 0
Начальный депозит 1000000.00
Чистая прибыль 19436.09 Общая прибыль 42746.64 Общий убыток -23310.55
Прибыльность 1.83 Матожидание выигрыша 2.57
Абсолютная просадка 6.00 Максимальная просадка 254.80 (0.03%) Относительная просадка 0.03% (254.80)
Всего сделок 7566 Короткие позиции (% выигравших) 0 (0.00%) Длинные позиции (% выигравших) 7566 (87.09%)
Прибыльные сделки (% от всех) 6589 (87.09%) Убыточные сделки (% от всех) 977 (12.91%)
Самая большая прибыльная сделка 10.50 убыточная сделка -40.40
Средняя прибыльная сделка 6.49 убыточная сделка -23.86
Максимальное количество непрерывных выигрышей (прибыль) 62 (410.00) непрерывных проигрышей (убыток) 5 (-125.00)
Максимальная непрерывная прибыль (число выигрышей) 410.00 (62) непрерывный убыток (число проигрышей) -125.00 (5)
Средний непрерывный выигрыш 9 непрерывный проигрыш 1
Graph

 

День добрый!

Необходимо, чтобы данный советник работал на одном счете, но на разных парах. Но к сожалению, если открыта хотя бы одна сделка, то на других парах советники не открывают сделки, даже если есть сигнал. В чем ошибка? Помогите разобраться!

И еще вопрос, нужно ли при присоединении советника к графику в настройках менять Magic, если он уже применялся в другой паре?

вот код:

//////////////////////////////////////////////////////////////////////
// ПЕРЕСЕЧЕНИЕ МУВИНГОВ //
//////////////////////////////////////////////////////////////////////
extern string Настройки = "Главные настройки"; ////////////////////////
extern int Magic = 227 ; //Индивидуальный номер//
extern double Lots =0.1 ;
extern int Slip = 5 ; //Проскальзывание/


// данные для установки времени

extern string OpenTime = "01:05-23:05";

//------------------------------------------------------------------// //
//Индикаторы // //
//------------------------------------------------------------------// //
extern string Индикатор1 = "MA-Медленный" ; // //
extern int MAPeriod1 = 55 ; //Период //
extern int MA1_shift = 0 ;
extern string Индикатор2 = "MA-Быстрый" ; // //
extern int MAperiod2 = 13 ; //Период //
extern int MA2_shift = 0 ;

//------------------------------------------------------------------/////////////
int tiket1,tiket2,cnt;
int start()
{
//---------------------------------------------------------------------------------------------------------------//
double MA1 =iMA(NULL,0,MAPeriod1,MA1_shift,MODE_LWMA,PRICE_MEDIAN,0); //вычисляем индикатор МА //
//Print("ma1=====",MA1);
double MA2 =iMA(NULL,0,MAperiod2,MA2_shift,MODE_LWMA,PRICE_CLOSE,0); //вычисляем индикатор МА //
//Print("ma2=====",MA2);

string OTA[];
string OTI[];
split(OTA, OpenTime, ";");

datetime tm0 = CurTime();
datetime tm1, tm2;

bool cond = false;

int cnt = ArraySize(OTA);
for (int i=0; i < cnt; i++) {
split(OTI, OTA[i], "-");
if (ArraySize(OTI) != 2) continue;

tm1 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OTI[0]);
tm2 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OTI[1]);

cond = cond || (tm1 <= tm0 && tm0 < tm2);
}


if (cond)
{
if(OrdersTotal()==0)
{
if((MA2>MA1)&&(Close[0]>MA2))
{
tiket1=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE);
}


if((MA2<MA1)&&(Close[0]<MA2))
{
tiket2=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE);
}
}

if(OrdersTotal()==1)
{
if((MA2>MA1)&&(Close[0]>MA2 ))
{
OrderClose(tiket2,Lots,Ask,Slip,Red);
}

if((MA2<MA1)&&(Close[0]<MA2))
{
OrderClose(tiket1,Lots,Bid,Slip,Red);
}
}
}
}

void split(string& arr[], string str, string sym)
{
ArrayResize(arr, 0);
string item;
int pos, size;

int len = StringLen(str);
for (int i=0; i < len;) {
pos = StringFind(str, sym, i);
if (pos == -1) pos = len;

item = StringSubstr(str, i, pos-i);
item = StringTrimLeft(item);
item = StringTrimRight(item);

size = ArraySize(arr);
ArrayResize(arr, size+1);
arr[size] = item;

i = pos+1;
}
}

 
marten82:

День добрый!

extern string OpenTime = "01:05-23:05";

//------------------------------------------------------------------// //
//Индикаторы // //
//------------------------------------------------------------------// //
extern string Индикатор1 = "MA-Медленный" ; // //
extern int MAPeriod1 = 55 ; //Период //
extern int MA1_shift = 0 ;
extern string Индикатор2 = "MA-Быстрый" ; // //
extern int MAperiod2 = 13 ; //Период //
extern int MA2_shift = 0 ;

//------------------------------------------------------------------/////////////
int tiket1,tiket2,cnt;
int start()
{
//---------------------------------------------------------------------------------------------------------------//
double MA1 =iMA(NULL,0,MAPeriod1,MA1_shift,MODE_LWMA,PRICE_MEDIAN,0); //вычисляем индикатор МА //
//Print("ma1=====",MA1);
double MA2 =iMA(NULL,0,MAperiod2,MA2_shift,MODE_LWMA,PRICE_CLOSE,0); //вычисляем индикатор МА //
//Print("ma2=====",MA2);

string OTA[];
string OTI[];
split(OTA, OpenTime, ";");

datetime tm0 = CurTime();
datetime tm1, tm2;

bool cond = false;

int cnt = ArraySize(OTA);
for (int i=0; i < cnt; i++) {
split(OTI, OTA[i], "-");
if (ArraySize(OTI) != 2) continue;

tm1 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OTI[0]);
tm2 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OTI[1]);

cond = cond || (tm1 <= tm0 && tm0 < tm2);
}


if (cond)
{
if(OrdersTotal()==0)
{
if((MA2>MA1)&&(Close[0]>MA2))
{
tiket1=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE);
}


if((MA2<MA1)&&(Close[0]<MA2))
{
tiket2=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE);
}
}

if(OrdersTotal()==1)
{
if((MA2>MA1)&&(Close[0]>MA2 ))
{
OrderClose(tiket2,Lots,Ask,Slip,Red);
}

if((MA2<MA1)&&(Close[0]<MA2))
{
OrderClose(tiket1,Lots,Bid,Slip,Red);
}
}
}
}

void split(string& arr[], string str, string sym)
{
ArrayResize(arr, 0);
string item;
int pos, size;

int len = StringLen(str);
for (int i=0; i < len;) {
pos = StringFind(str, sym, i);
if (pos == -1) pos = len;

item = StringSubstr(str, i, pos-i);
item = StringTrimLeft(item);
item = StringTrimRight(item);

size = ArraySize(arr);
ArrayResize(arr, size+1);
arr[size] = item;

i = pos+1;
}
}


Думаю там где выделенно красным.
 
-marten82:

День добрый!

Необходимо, чтобы данный советник работал на одном счете, но на разных парах. Но к сожалению, если открыта хотя бы одна сделка, то на других парах советники не открывают сделки, даже если есть сигнал. В чем ошибка? Помогите разобраться!

И еще вопрос, нужно ли при присоединении советника к графику в настройках менять Magic, если он уже применялся в другой паре?

вот код:


...
if(OrdersTotal()==0)

....
Вот корень зла.
 
paukas:
Вот корень зла.
Я догадывался. А вы могли бы помочь с правильным условием? Потому что что-то у меня не получается.
 

Почему то советник упорно не хочет отписываться в журнале раньше 21.45,хотя в коде вроде все верно и никаких ограничений на это нет...посмотрите в чем там может быть причина плз? upd перезагрузил комп,на первом прогоне записи были с самого начала дня,а потом опять все по новой... такое ощущение что закэшировалось что то,только вот что?



 
asc9:

Почему то советник упорно не хочет отписываться в журнале раньше 21.45,хотя в коде вроде все верно и никаких ограничений на это нет...посмотрите в чем там может быть причина плз? upd перезагрузил комп,на первом прогоне записи были с самого начала дня,а потом опять все по новой... такое ощущение что закэшировалось что то,только вот что?




Мне кажется это из-за первого условия. Попробуй Hour()<=22.