//это выражение не имеет смысла, 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;}
你好。
有一个专家级的SimpleMA,我为自己做了一点调整,只是一点......:-)),并称之为MASimple_v2x。
然后我试图改进它,但是,但是
实验后我得到了一个错误。
我做错了什么?????????????
>> 预先感谢。
这样试试吧。
而不是 - 如果MAF_0 - MAF_1= A
如果 MAS_0 - MAS_1= B
this - double A = MAF_0 - MAF_1;
双重B = MAS_0 - MAS_1。
如果我理解正确的话,你正在跟踪两个MAs都在向同一方向移动的情况。还有许多有趣的发现在等着你 :))
你能告诉我,是否有可能在不开新单的情况下增加市场订单的手数?
据我所知,没有!只有当你打开一个新的地段时。交易后增加地段的意义何在?或者你的意思是,你看到你是如何在正确的方向上打开的,而你想要越来越多的钱?
И что теперь с этим делать?
可能会更好(更多的用途)。
帮助我找到代码中的一个错误。编译时没有错误,但计算和交易没有通过(提前感谢这里的专业人士。
大家好,请给我一个建议!!!。有几个问题,自己做不了。
1.如何使一个栏位上只有一个订单开放?
2.有几个买入和卖出条件,用什么函数来处理?
3.如何组织未结头寸 转入盈亏平衡?
4.如何在EA代码中应用所有三个条件(如果可能,请举例说明)?
我期待着你的回答。事先非常感谢你。
你好。我只是碰巧看到了一篇关于我感兴趣的主题的 文章。也就是这个。选择一个窗口尺寸。....实现了最佳的结果
在选择与数据分形维度数量级相同的窗口大小的情况下。为了计算它,我们应该用一个足够大的滑动窗口对系列进行 "切片"。
(见图5),然后用例如Box-count方法计算所得数据的分形维度....。
请告知(最好是更简单),如何计算这个滑动窗口的大小。或者至少是在哪里看。
作者的联系方式在网站上,我建议咨询原始资料。为工作欢呼吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
感谢狂人和granit77。
最近的一件轶事。在计算机实验室里的文学课,由计算机科学老师主持。
-Gerasim是,这.....thim......nu......a,他没有声卡 :-)))))))))))))))))
嗯,至于专家,我试图缩短交易条件。你知道,为了更好地感知。
也就是说,如果有数学计算,最好通过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()函数是否正确。我没有检查过,但我相信只有在自定义指标 中才能保证其正确性。