Если я правильно понял, Вы отслеживаете ситуацию, когда обе МА движутся в одном направлении. Вас ждет еще много интересных открытий :))
//это выражение не имеет смысла, if здесь лишнийif MAF_0 - MAF_1= A
if MAS_0 - MAS_1= B
//если требовалось определить разницу значений МА на 1-ом и нулевом баре, то можно такdouble A = MAF_0 - MAF_1;double B = MAS_0 - MAS_1;
Подскажите, пожалуйста, возможно ли увеличивать кол-во лотов у рыночного ордера, не открывая новые?
Насколько мне известно - нет! Только при открытии нового лота. А Какой смысл увеличивать лоты после произведенной зделки? Или Вы имеете в виду что видете как открылись в нужном направлении а денежек хочется побольше и еще больше?
Помогите найти ошибку в коде.При компиляции ошибки нет а расчеты и сделки не проходят( Заранее спасибо находящимся здесь Профи.
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжexternint EMA1 =14;// Период 1-й EМАexternint EMA2 =48;// Период 2-й EМАexternint EMA3 =144;// Период 3-й EМА externint period=12;externint porog =3;externint metod =1;externint metod2=1;externint prise =0;externdouble SL =1000;// СтопЛосс ордераexterndouble TP =500;// ТэйкПрофит ордераexterndouble Lots=0.1;//--------------------------------------------------------------------------------------------int
New_Bar,// 0/1 Факт образования нового бара
Time_0,// Время начала нового бара
total;// Крличество открытых ордеров//--------------------------------------------------------------------------------------------double
Lot,// Количество лотов
Norm,// Предыдущее значение 1-й МА (розов)
Fast,// Текущее значение 1-й МА (розов)
Slow,// Текущее значение 2-й МА(голубая)
Signal[];//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжint init(){//============================================================================================
SL = SL*Point;// SL в пунктах
TP = TP*Point;// ТР в пунктахreturn;//============================================================================================}//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжint start(){//============================================================================================
total=OrdersTotal();// Общее количество ордеровif(total==2)return;// Уже открыты оба ордера//----------------------------------------------------------------------------- Новый бар ----
New_Bar=0;// Для начала обнулимсяif(Time_0 !=Time[0])// Если уже другое время начала бара{
New_Bar=1;// А вот и новый бар
Time_0 =Time[0];// Запомним время начала нового бара}//--------------------------------------------------------------------------------------------//---расчет тренда ввех или вниз (XMA)int limit;double tmp1,tmp2;int counted_bars=IndicatorCounted();int i;if(counted_bars<0)return(-1);if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;for(i = limit;i>=0;i--){
tmp1=iMA(Symbol(),0,period,0,metod,prise,i);
tmp2=iMA(Symbol(),0,period,1,metod2,prise,i);if(MathAbs(tmp1-tmp2)>=porog*Point){ Signal[i]=tmp2;}//--------------------------------------------------------------------------------------------
Fast =iMA(NULL,0, EMA1,0,MODE_EMA,PRICE_CLOSE,0);// Текущее значение 1-й EМА
Norm =iMA(NULL,0, EMA2,0,MODE_EMA,PRICE_CLOSE,0);// Предыдущее значение 2-й EМА
Slow=iMA(NULL,0, EMA3,0,MODE_EMA,PRICE_CLOSE,0);// Текущее значение 3-й EМА//--------------------------------------------------------------------------------------------if(Fast>Norm && Norm>Slow && New_Bar==1&&Close[i]>Signal[i]) Open_Buy();// Движение снизу вверх = откр. Buyif(Fast<Norm && Norm<Slow && New_Bar==1&&Close[i]<Signal[i]) Open_Sell();// Движение сверху вниз = откр. Sell}return;//============================================================================================}//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжint Open_Buy(){if(total==1){OrderSelect(0, SELECT_BY_POS);// Выделим ордерif(OrderType()==0)return;// Если он buy, то не открываемся}OrderSend(Symbol(),0, Lots,Ask,0,Ask-SL,Ask+TP,"",0,0,Blue);// Открываемсяreturn;}//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжint Open_Sell(){if(total==1){OrderSelect(0, SELECT_BY_POS);// Выделим ордерif(OrderType()==1)return;// Если он sell, то не открываемся}OrderSend(Symbol(),1, Lots,Bid,0,Bid+SL,Bid-TP,"",0,0,Red);// Открываемсяreturn;}
Здравствуйте. Вот случайно наткнулся на статью по интересующей меня теме. А именно это: Выбор размера окна. .... Оптимальные результаты достигаются
в случае выбора размера окна порядка фрактальной размерности данных. Для ее вычисления следует “нарезать” ряд скользящим окном достаточно большого размера
(см. Рисунок 5 ), а потом вычислить фрактальную размерность полученных данных с помощью, например, Box-count метода....
Подскажите пожалуйста (желательно попроще), как вычислить размер этого скользящего окна. Или хотя-бы где об этом посмотреть.
На сайте есть контакты автора, рекомендую обратиться к первоисточнику.
Помогите найти ошибку в коде.При компиляции ошибки нет а расчеты и сделки не проходят( Заранее спасибо находящимся здесь Профи.
Первое, что бросается в глаза в вашем коде и в чем я не уверен, так это корректность использования функции IndicatorCounted() в советнике. Не проверял, но полагаю, что правильная ее работа гарантируется только в пользовательских индикаторах.
Здравствуйте.
Есть такой эксперт SimpleMA, я его немног подправил под себя, самую малость...:-))) и обозвал MASimple_v2x, код выкладываю
потом попробовал усовершенствовать Но НО НО
после эксперемента выдаёт ошибку
ЧТО Я НЕПРАВИЛЬНО НАТВОРИЛ?????????????
Заранее благодарен
Попробуй так:
вместо - if MAF_0 - MAF_1= A
if MAS_0 - MAS_1= B
вот это - double A = MAF_0 - MAF_1;
double B = MAS_0 - MAS_1;
Если я правильно понял, Вы отслеживаете ситуацию, когда обе МА движутся в одном направлении. Вас ждет еще много интересных открытий :))
Подскажите, пожалуйста, возможно ли увеличивать кол-во лотов у рыночного ордера, не открывая новые?
Насколько мне известно - нет! Только при открытии нового лота. А Какой смысл увеличивать лоты после произведенной зделки? Или Вы имеете в виду что видете как открылись в нужном направлении а денежек хочется побольше и еще больше?
И что теперь с этим делать?
Возможно лучше будет (универсальнее):
Помогите найти ошибку в коде.При компиляции ошибки нет а расчеты и сделки не проходят( Заранее спасибо находящимся здесь Профи.
Всем привет! Подскажите, пожалуйста!!! Есть несколько вопросов, сам не справляюсь:
1. Как сделать так, чтобы на одном баре открывался только один ордер?
2. Есть несколько условий на покупку и продажу, какую для этого использовать функцию?
3. Как организовать перенос открытой позиции в безубыток?
4. Как все три условия применить в коде советника (если можно, на примере)?
Жду ваших ответов. Заранее огромное спасибо.
Здравствуйте. Вот случайно наткнулся на статью по интересующей меня теме. А именно это: Выбор размера окна. .... Оптимальные результаты достигаются
в случае выбора размера окна порядка фрактальной размерности данных. Для ее вычисления следует “нарезать” ряд скользящим окном достаточно большого размера
(см. Рисунок 5 ), а потом вычислить фрактальную размерность полученных данных с помощью, например, Box-count метода....
Подскажите пожалуйста (желательно попроще), как вычислить размер этого скользящего окна. Или хотя-бы где об этом посмотреть.
На сайте есть контакты автора, рекомендую обратиться к первоисточнику.УРА ЗАРАБОТАЛО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Спасибо maniac-у и granit77.
Свежий анекдот. Урок литературы в компьютерном классе, проводит учитель информатики.
-Герасим был, это.....этим......ну......а а звуковой карты у него не было :-)))))))))))))))))
Ну а по поводу эксперта, попробывал я укоротить торговое условие. Ну что ли для лучшего восприятия.
То есть, если есть математические вычисления, то их лучше вызывать через double.
Всем привет! Подскажите, пожалуйста!!! Есть несколько вопросов, сам не справляюсь:
1. Как сделать так, чтобы на одном баре открывался только один ордер?
....... ...
Жду ваших ответов. Заранее огромное спасибо.
https://www.mql5.com/ru/forum/102366
//-----------------
https://www.mql5.com/ru/forum/113983/page2
//-------------
https://www.mql5.com/ru/forum/110184
Помогите найти ошибку в коде.При компиляции ошибки нет а расчеты и сделки не проходят( Заранее спасибо находящимся здесь Профи.
Первое, что бросается в глаза в вашем коде и в чем я не уверен, так это корректность использования функции IndicatorCounted() в советнике. Не проверял, но полагаю, что правильная ее работа гарантируется только в пользовательских индикаторах.