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

 
Melena:

Здравствуйте, уважаемые форумчане! Очень надеюсь на вашу помощь.....

Так вот вопрос, что вы думаете, уважаемы специалисты в этой области, в правильном ли направлении я мыслю, и если нет, то посоветуйте, пожалуйста, что можно сделать с этими данными, как и где применить линейную регрессию? какую гипотезу можно создать, а потом подтвердить или опровергнуть? Сама я далеко не специалист в этой области, до этого никогда со статистикой и уж тем более с Исследовательским методом не сталкивалась(((.

Спасибо заранее!

С уважением,

Милена.

В течении года кол-во клиентов резко меняется (так понимаю), тогда необходимо учитывать динамику изменения кол-ва оздаравливаемых (история повторяется).

Привязывайтесь к времени, 1 декабря каждый год еду куда ...

И так по всем пунктам

Или есть хороший метод минимизации

http://www.google.com.ua/search?source=ig&hl=ru&rlz=1G1GGLQ_RUUA357&=&q=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0+%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8+%D1%83%D0%BF%D1%83%D1%89%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9+%D0%B2%D1%8B%D0%B3%D0%BE%D0%B4%D1%8B&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&aq=f&oq=

Desktop_1.zip (2 871.41 KB) удалить

 
granit77:

Print(iMA("EURUSD", PERIOD_D1, 14, 0, MODE_SMA, PRICE_CLOSE,0));

Так точнее будет.
:) Сплю на ходу... :)
 
marker:

В принципе наверно так и будет. Один счет, 8 терминов, 8 скриптов каждый будет сохранять свои сделки в одельную папку (сортировка по мэджику). Почему хочу один счет,потому что хочу посмотреть на кривую всего портфеля....как то так....сейчас висят по отдельности. Спасибо за ответ:)) Хотя было бы удобнее если бы все сделки копились в одном файле, но были рассортированы, вот это удобнее, в одном файле все рассортировано, так можно сделать?

Есть такая штука, но Вы не кодер ;))

https://www.mql5.com/ru/code/8051

 

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

Подскажите, пожалуйста, что означает прибыльность - 981 ? Разве такое возможно ? Это что - сумма всего положительного профита в 981 раз больше суммы всех убытков ?? (но прибыль при этом - 24, а просадка - 13... что-то не пойму....). Оптимизацию провожу по "фактору прибыльности (Profit Factor)".

Где же тут просадка в 13 долларов...?


Вот отчёт тестирования:


 

Да!!Крайне интересно.Результат за всякие рамки,я сам плохо просекаю тестирование.

Ничего не пойму!!!!!!!!Я решил прописать советнику трейлингстоп,исхитрился и прописал такую фигню.

Переменная vzlet считает,на сколько пунктов поднялась цена,по сравнению с моментом,где она была в миг открытия ордера;Переменная newloss- новый лосс;она равна размеру,на сколько пунктов он сдвинется при сдвижении,и внутри ордер-модифи прописана крайне просто и понятно Bid+newloss*PointX

Получив ошибку 130,я для прикола создал переменную bylstop=Bid+stoploss*PointX; -былстоп,которая запоминает,какой стоп был в миг открытия ордера,

-результат Поразительнейший-разница newloss и bylstop порой превосходит 200 пунктов и как правило не меньше 100 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Конечно,ошибка 130! Но как же это может быть!!!!!! Формулы крайне просты!!! Никакой ошибки!!!! Или я напрочь баран?? Смотрю третий день,не пойму!!!!

//+------------------------------------------------------------------+
//| мром.mq4 |
//| Димон |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Димон"
#property link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+

extern int BandsPeriod=20, i=1; extern int BandsShift=0;
extern double BandsDeviations=2.0;
extern double Lots=0.1, TakeProfit=60, stoploss=25; double PointX;


int init()
{ if(Digits==5 || Digits==3) PointX = Point * 10; // Корректировка Point под трёх- пятизнак
if(Digits==4 || Digits==2) PointX = Point;
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
double order; int ticket;double bylstop;
int start()
{double newloss=12; Alert ("ticket",ticket);
double vzlet= (Close[1]-order)/PointX;

Alert ("vzlet",vzlet); int total=OrdersTotal();// Comment(" total ",total); Alert (" total ",total);
Alert ("PointX",PointX);


if (vzlet>=20)
{ for(int i = 0; i < total; i++)
{ OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES );
if(OrderSymbol() == Symbol()&&OrderMagicNumber() == 16384 &&OrderType() == OP_BUY)

OrderModify(OrderTicket(),OrderOpenPrice(),Bid+newloss*PointX,OrderTakeProfit(),0,Blue);
Alert ("Ошибка модификации", GetLastError()); Alert ("newlossbuy",Bid+newloss*PointX);Alert ("bylstopbuy",bylstop); } }


if (vzlet<=(-20))
{ for( i = 0; i < total; i++)
{ OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES );
if(OrderSymbol() == Symbol() && OrderMagicNumber() == 16384&&OrderType() == OP_SELL)

OrderModify(OrderTicket(),OrderOpenPrice(),Ask-newloss*PointX,OrderTakeProfit(),0,Blue);
Alert ("Ошибка модификации", GetLastError()); Alert ("newlosssell",Ask-newloss*PointX); Alert ("bylstopsell",bylstop); } }



if ( total !=0 ){return;}

double Average,Verhnyayaghranytsa,Nyzhnyayaghranytsa,newres,sum,deviation;
string text; int err;
text="macd sample";
Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
int k,counted_bars=IndicatorCounted();

//----
//----
for( k = 0; k<BandsPeriod; k++)
{ newres=Close[k]-Average;//Alert (" Average ",Average);
sum+=((newres*100)*(newres*100))/10000;//Alert (" newres ",newres);
}




deviation=BandsDeviations*MathSqrt(sum/BandsPeriod);
Verhnyayaghranytsa=Average+deviation;
Nyzhnyayaghranytsa=Average-deviation;//Alert (" sum ",sum);
// Alert (" deviation ",deviation);
//----
if (Verhnyayaghranytsa<Close[i])
{ Comment(" буй! ",Verhnyayaghranytsa );
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-stoploss*PointX,Ask+TakeProfit*PointX,"macd sample",16384,0,Green);
Alert (" stoploss ",Ask-stoploss*PointX);order=Close[0];order=Close[0];bylstop= Ask-stoploss*PointX;Alert("Ошибкаордербай", GetLastError());
}


if (Nyzhnyayaghranytsa>Close[i])
{ Comment(" селл! ",Nyzhnyayaghranytsa );

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+stoploss*PointX,Bid-TakeProfit*PointX,"macd sample",16384,0,Red);
Alert (" stoploss ",Bid+stoploss*PointX);bylstop=Bid+stoploss*PointX;
Alert("Ошибкаордерселл", GetLastError()); order=Close[0]; }

}
return(0);

//+------------------------------------------------------------------+

2010.12.22 14:22:09 2010.06.03 20:46 мром EURUSD,H1: Alert: bylstopsell1.2247

2010.12.22 14:22:09 2010.06.03 20:46 мром EURUSD,H1: Alert: newlosssell1.2154

2010.12.22 14:22:09 2010.06.03 20:46 мром EURUSD,H1: Alert: Ошибка модификации130

2010.12.22 14:22:09 2010.06.03 20:46 мром EURUSD,H1: OrderModify error 130

2010.12.22 14:22:04 2010.06.03 05:00 мром EURUSD,H1: Alert: ticket2

2010.12.22 14:22:04 2010.06.03 05:00 мром EURUSD,H1: Alert: PointX0.0001

2010.12.22 14:22:04 2010.06.03 05:00 мром EURUSD,H1: Alert: vzlet16

2010.12.22 14:22:04 2010.06.03 05:00 мром EURUSD,H1: Alert: ticket2

2010.12.22 14:22:04 2010.06.03 05:00 мром EURUSD,H1: Alert: PointX0.0001

2010.12.22 14:22:04 2010.06.03 05:00 мром EURUSD,H1: Alert: vzlet16

Я исхитрился и выдумал такую когструкцию if(OrderSymbol() == Symbol() && OrderMagicNumber() == 16384&&OrderType() == OP_SELL) чтоб не писать трижды,

впервые прописал OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES ); и впервые OrderModify(OrderTicket(),OrderOpenPrice(),Bid+newloss*PointX,OrderTakeProfit(),0,Blue);

и ошибка там,где и быть не может!!!!!!!!



Мало того,я умножил PointX0.0001 на 10, а далее разделил(естественно вне циклов),хоть это и в корне не верно,не поняв причины,и получил не менее непонятный

//+------------------------------------------------------------------+
//| мром.mq4 |
//| Димон |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Димон"
#property link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function |

//+----------------

--------------------------------------------------+

extern int BandsPeriod=20, i=1; extern int BandsShift=0;
extern double BandsDeviations=2.0;
extern double Lots=0.1, TakeProfit=60, stoploss=25; double PointX;


int init()
{ if(Digits==5 || Digits==3) PointX = Point * 10; // Корректировка Point под трёх- пятизнак
if(Digits==4 || Digits==2) PointX = Point;
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
double order; int ticket;double bylstop;
int start()
{double newloss=12; Alert ("ticket",ticket); PointX= PointX*10 ;
double vzlet= (Close[1]-order)/PointX;

Alert ("vzlet",vzlet); int total=OrdersTotal();// Comment(" total ",total); Alert (" total ",total);
Alert ("PointX",PointX);


if (vzlet>=20)
{ for(int i = 0; i < total; i++)
{ OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES );
if(OrderSymbol() == Symbol()&&OrderMagicNumber() == 16384 &&OrderType() == OP_BUY)

OrderModify(OrderTicket(),OrderOpenPrice(),Bid+newloss*PointX,OrderTakeProfit(),0,Blue);
Alert ("Ошибка модификации", GetLastError()); Alert ("newlossbuy",Bid+newloss*PointX);Alert ("bylstopbuy",bylstop); } }


if (vzlet<=(-20))
{ for( i = 0; i < total; i++)
{ OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES );
if(OrderSymbol() == Symbol() && OrderMagicNumber() == 16384&&OrderType() == OP_SELL)

OrderModify(OrderTicket(),OrderOpenPrice(),Ask-newloss*PointX,OrderTakeProfit(),0,Blue);
Alert ("Ошибка модификации", GetLastError()); Alert ("newlosssell",Ask-newloss*PointX); Alert ("bylstopsell",bylstop); } }



if ( total !=0 ){return;} PointX = PointX/10;

double Average,Verhnyayaghranytsa,Nyzhnyayaghranytsa,newres,sum,deviation;
string text; int err;
text="macd sample";
Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
int k,counted_bars=IndicatorCounted();

//----
//----
for( k = 0; k<BandsPeriod; k++)
{ newres=Close[k]-Average;//Alert (" Average ",Average);
sum+=((newres*100)*(newres*100))/10000;//Alert (" newres ",newres);
}




deviation=BandsDeviations*MathSqrt(sum/BandsPeriod);
Verhnyayaghranytsa=Average+deviation;
Nyzhnyayaghranytsa=Average-deviation;//Alert (" sum ",sum);
// Alert (" deviation ",deviation);
//----
if (Verhnyayaghranytsa<Close[i])
{ Comment(" буй! ",Verhnyayaghranytsa );
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-stoploss*PointX,Ask+TakeProfit*PointX,"macd sample",16384,0,Green);
Alert (" stoploss ",Ask-stoploss*PointX);order=Close[0];order=Close[0];bylstop= Ask-stoploss*PointX;Alert("Ошибкаордербай", GetLastError());
}


if (Nyzhnyayaghranytsa>Close[i])
{ Comment(" селл! ",Nyzhnyayaghranytsa );

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+stoploss*PointX,Bid-TakeProfit*PointX,"macd sample",16384,0,Red);
Alert (" stoploss ",Bid+stoploss*PointX);bylstop=Bid+stoploss*PointX;
Alert("Ошибкаордерселл", GetLastError()); order=Close[0]; }

}
return(0);

//+------------------------------------------------------------------+



2010.12.22 14:48:09 2010.06.03 07:40 мром EURUSD,H1: Alert: PointX1.#INF

2010.12.22 14:48:09 2010.06.03 07:40 мром EURUSD,H1: Alert: vzlet0

2010.12.22 14:48:09 2010.06.03 07:40 мром EURUSD,H1: Alert: ticket-1

2010.12.22 14:48:08 2010.06.03 07:40 мром EURUSD,H1: Alert: PointX1.#INF

2010.12.22 14:48:08 2010.06.03 07:40 мром EURUSD,H1: Alert: vzlet0

2010.12.22 14:48:08 2010.06.03 07:40 мром EURUSD,H1: Alert: ticket-1

2010.12.22 14:48:08 2010.06.03 07:40 мром EURUSD,H1: Alert: PointX1.#INF



 
Понял,во второй версии,если ордер открыт,PointX уже не делится. Но основную проблему не пойву.
 

Я напрочь не пойму логику присваивания тикета.Это же не порядковый номер??Тогда как?? Вроде,номера тикетов растут по ходу.

Но как он может быть минус один!!!???

 
чё за PointX, зачем он? Point это пункт, newloss*Point - newloss пунктов
 

Когда я только написал советника,своего первого,он не работал,тож писал ошибку 130,только не модификации,а открітия ордера,на форуме посоветовали,у тебя мол платформа пятизнак,вставь вставь if(Digits==5 || Digits==3) PointX = Point * 10; // Корректировка Point под трёх- пятизнак
if(Digits==4 || Digits==2) PointX = Point; Я вставил,все заработало!!!!!!!! Я вставил,скопировал,но особо не разобрал,понял,ошибка там,разберу.Я в общем и сам уже понял.



 
Dimka-novitsek:

Я напрочь не пойму логику присваивания тикета.Это же не порядковый номер??Тогда как?? Вроде,номера тикетов растут по ходу.

Но как он может быть минус один!!!???

Он показывается равным "-1", если ордер не сработал. В случае исполнения ордера ему присваивается номер.
Причина обращения: