double MA_1[]; // нет обьявления размера, не видно как (локально или глобально) обьявлен,
// не видно оператора двигающего индекс массива.// лучше пока не освоили работу с массивами обьявите переменные и не парьтесьdouble MA_0=iMA(NULL,0,Period_MA,0,MODE_EMA,PRICE_CLOSE,0);
double MA_1=iMA(NULL,0,Period_MA,0,MODE_EMA,PRICE_CLOSE,1);
if (MA_1 < MA_0)
{ // ..МА последнего бара выше предыдущего
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}
if (MA_1 > MA_0)
{ // ..МА последнего бара ниже предыдущего
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 25.04.2008 |//| Описание : Закрытие тех позиций, у которых убыток в валюте депозита |//| превысил некоторое значение |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//| pr - профит/убыток |//+----------------------------------------------------------------------------+void ClosePosBySizeLossInCurrency(string sy="", int op=-1, int mn=-1, double pr=0) {
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=k-1; i>=0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderProfit()+OrderSwap()<-MathAbs(pr)) ClosePosBySelect();
}
}
}
}
}
}
下午好,继续掌握编码,从教程部分的文章中提取了EA的例子,替换了例子中的代码。
为了训练目的,对一个任意的。
交易没有显示出来,请告知原因是什么,如何修复代码。Urain,谢谢你,我对mql的逻辑从来没有停止过惊讶,如果你试图用for(int i=1;来尝试,脚本就不会简化--你能告诉我如何格式化吗,我还不能感受到语言的逻辑,如何定义移动数组的操作符?
P.S.我声明的数组,在示例脚本中被错误地删除了。
价格上的差异。因此,不同的,相反的,指标结果...
#property indicator_buffers 2
#property indicator_color1 blue
#property indicator_color2 Red
外来的int n = 20。
外部int t3_period = 5;
外部双b = 0.618。
外来的int mBars = 300。
extern int Bars.Count = 0。
int i,t,c;
double Buf1[],Buf2[],CF_p[5001],CF_n[5001],Ch_p[5001],Ch_n[5001],k_n,k_p,ch_p,ch_n,cff_p,cff_n,
AcBars,t3,t32,A1,A2,b2,b3,c1,c2,c3,c4,e1,e2,e3,e4,e5,e6,n1,w1,w2,e12,e22,e32,e42,e52,e62;
//+------------------------------------------------------------------+
int init() {
SetIndexStyle(0, DRAW_LINE)。
SetIndexBuffer(0, Buf1)。
SetIndexStyle(1,DRAW_LINE)。
SetIndexBuffer(1, Buf2)。
return(0); }
//+------------------------------------------------------------------+
int start() {
int限制。
如果(IndicatorCounted()<0)返回(-1)。
limit=Bars-IndicatorCounted()。
如果(Bars.Count>0 && limit>Bars.Count) limit=Bars.Count。
for(int i=0; i<limit; i++)
{
b2=b*b;b3=b2*b;c1=-b3;c2=(3*(b2+b3));c3=-3*(2*b2+b3);c4=(1+3*b+b3+3*b2);n1=t3_period。
if(n1<1) n1=1; n1=1+0.5*(n1-1); w1=2/(n1+1); w2=1-w1。
如果(AcBars==0) AcBars=Bars-mBars。
for(c=AcBars; c<=Bars-1; c ++) { i=Bars-1-c; {
if(Close[i]>Close[i+1]) { Ch_p[i]=Close[i]-Close[i+1]; CF_p[i]=Ch_p[i]+CF_p[i+1]; Ch_n[i]=0; CF_n[i]=0; }
else { Ch_p[i]=0; CF_p[i]=0; Ch_n[i]=Close[i+1]-Close[i]; CF_n[i]=Ch_n[i]+CF_n[i+1]; }}.
for(t=i+n; t>=i; t--) { ch_p=Ch_p[t]+ch_p; ch_n=Ch_n[t]+ch_n ; cff_p=CF_p[t]+cff_p; cff_n=CF_n[t]+cff_n; }
k_p=ch_p-cff_n; k_n=ch_n-cff_p;
A1=k_p;e1=w1*A1+w2*e1;e2=w1*e1+w2*e2;e3=w1*e2+w2*e3;e4=w1*e3+w2*e4。
e5=w1*e4+w2*e5; e6=w1*e5+w2*e6; t3=c1*e6+c2*e5+c3*e4+c4*e3; Buf1[i]=t3。
A2=k_n;e12=w1*A2+w2*e12;e22=w1*e12+w2*e22;e32=w1*e22+w2*e32;e42=w1*e32+w2*e42。
e52=w1*e42+w2*e52; e62=w1*e52+w2*e62; t32=c1*e62+c2*e52+c3*e42+c4*e32; Buf2[i]=t32。
AcBars=AcBars+1; ch_p=0; ch_n=0; cff_p=0; cff_n=0; }
}
return(0); }
你能告诉我哪里出错了吗?"历史记录是正常的,而在线的却没有。
下午好。一个数组已经被声明,移动数组索引 的操作符已经被设置,但是订单没有被放置。请告诉我什么是错的。
试试OrderSend,然后就可以了...
你读过标准的MetaEditore帮助程序吗?如果没有,请阅读整个...
下午好。我已经声明了一个数组,并定义了移动数组索引的操作符,但订单没有被放置。请告知有什么问题。
。 我需要找到一个损失最大的未结头寸。
重点是,我需要找到比亏损头寸更多的利润头寸,并以反平仓的方式关闭它们。
也许有人在这方面有一些经验,或者面临过这样的问题?
试试OrderSend,然后就可以了...
你读过标准的MetaEditore帮助程序吗?如果没有,请全部阅读...
幼稚的年龄,问一个问题,没有解决的帮助和YANDEX已经成长。有很多发送者,但职位没有开放。