extern datetime startDate = 1389107200; extern int period = 1; extern int priceType = MODE_CLOSE; extern int shift = 0; extern int mode = MODE_EMA; extern string addSymbol = "GBPUSD"; extern color curSymbolColor = Red; extern color addSymbolColor = Aqua;
int drawBars = 0; int addBars = 100; double a[], b[], c[];
// ---- int init(){ IndicatorBuffers(3); SetIndexBuffer(0,a); SetIndexBuffer(1,b); SetIndexBuffer(2,c); SetIndexStyle(0,DRAW_LINE,EMPTY,EMPTY,curSymbolColor); SetIndexStyle(1,DRAW_LINE,EMPTY,EMPTY,addSymbolColor); drawBars = iBarShift(NULL,0,startDate); if (iClose(addSymbol,0,0) == 0) addSymbol = ""; drawBars += period + addBars; }
// ---- int start(){ int bars = 0, i = 0, si = 0, pos = 0; static double delta = 0;
bars = IndicatorCounted(); if (bars < 0) return(-1); i = Bars - bars - 1;
if (i > drawBars) i = drawBars; si = i;
while (i > 0){ if (i < drawBars - period - addBars){ a[i] = iMA(NULL,0,period,shift,mode,priceType,i); } pos = iBarShift(addSymbol,0,Time[i]); c[i] = price(addSymbol,0,priceType,pos); i--; } si -= period + addBars + 1; i = si;
//---- double price(string symb,int tf, int type, int i){ double p = 0; if (symb=="0") symb = Symbol();
switch(type){ case MODE_OPEN : p = iOpen(symb,tf,i); break; case MODE_LOW : p = iLow(symb,tf,i); break; case MODE_HIGH : p = iHigh(symb,tf,i); break; case MODE_CLOSE : p = iClose(symb,tf,i); break; } return(p); }
在退出开始后,它将在信号改变后继续交易?
这个和这个行动有什么不同?
(不谈细节)没有什么。
在退出开始后,它将在信号改变后继续交易?
和行动有什么不同?
在第二种情况下,start()函数返回0,在第一种情况下,什么都不返回。
在第二种情况下,start()函数返回0;在第一种情况下,它没有返回任何东西。
一个很大的误解,导致在不存在错误 的地方发现错误。
该函数返回某个未定义的数字,它很可能返回0,虽然不能确定。
所以不要迷惑这个人。 否则,他将陷入困境,不会高兴。
在退出开始后,它将在信号改变后继续交易?
和行动有什么不同?
一个很大的误解,导致在没有错误的地方发现错误。
该函数返回某个未定义的数字,它很可能返回0,虽然不能确定。
所以不要迷惑男人。 否则他就会受到伤害,不会高兴。
括号中的return()是函数的返回值,如果没有值则没有。
不,也不!
不要教新手胡说八道。
int F1() { 返回; }
int F2() { }
int a=F1(), b=F2()。
打印(a)。
打印(b)。
-----
感谢上帝增加了严格模式
#property indicator_buffers 2
extern datetime startDate = 1389107200;
extern int period = 1;
extern int priceType = MODE_CLOSE;
extern int shift = 0;
extern int mode = MODE_EMA;
extern string addSymbol = "GBPUSD";
extern color curSymbolColor = Red;
extern color addSymbolColor = Aqua;
int drawBars = 0;
int addBars = 100;
double a[], b[], c[];
// ----
int init(){
IndicatorBuffers(3);
SetIndexBuffer(0,a);
SetIndexBuffer(1,b);
SetIndexBuffer(2,c);
SetIndexStyle(0,DRAW_LINE,EMPTY,EMPTY,curSymbolColor);
SetIndexStyle(1,DRAW_LINE,EMPTY,EMPTY,addSymbolColor);
drawBars = iBarShift(NULL,0,startDate);
if (iClose(addSymbol,0,0) == 0) addSymbol = "";
drawBars += period + addBars;
}
// ----
int start(){
int bars = 0, i = 0, si = 0, pos = 0;
static double delta = 0;
bars = IndicatorCounted();
if (bars < 0) return(-1);
i = Bars - bars - 1;
if (i > drawBars) i = drawBars;
si = i;
while (i > 0){
if (i < drawBars - period - addBars){
a[i] = iMA(NULL,0,period,shift,mode,priceType,i);
}
pos = iBarShift(addSymbol,0,Time[i]);
c[i] = price(addSymbol,0,priceType,pos);
i--;
}
si -= period + addBars + 1;
i = si;
while(i > 0){
b[i] = iMAOnArray(c,0,period,shift,mode,i);
if (i == si){
delta = b[i] - a[i];
}
b[i] -= delta;
i--;
}
}
//----
double price(string symb,int tf, int type, int i){
double p = 0;
if (symb=="0") symb = Symbol();
switch(type){
case MODE_OPEN :
p = iOpen(symb,tf,i); break;
case MODE_LOW :
p = iLow(symb,tf,i); break;
case MODE_HIGH :
p = iHigh(symb,tf,i); break;
case MODE_CLOSE :
p = iClose(symb,tf,i); break;
}
return(p);
}
请帮助,我不知道该写什么题目。
我有一个专家顾问,我需要给它增加下一手赢利乘以2的能力。
1.风险
2.盈利
3.止损
4.开始时间
5.地段大小
6.如果该地段是积极关闭的
7.后续乘法地段的数量(1、2、3或4)。
7.1 乘以中标号码(每2个,按X)。
7.2 倍数的中签率(每3个X)。
7.3 一批倍数的中奖者(每4个X) 7.4 一批倍数的中奖者(每4个X) 7.5 一批倍数的中奖者(每4个X) 7.6 一批倍数的中奖者(每4个X) 7.7 一批倍数的中奖者(每4个X
7.4 乘以中标的地段(每个5乘以X)。
X - 可改变的值(如果X=0,那么该批货物就不会被乘以)。
例1:
如果下注0.03=打入+,则下注为0.06
如果下注0.06=打入+,则下注为0.09
如果下注0.09=没有参加+,那么下注就是标准的0.03。
例2:
如果下注0.03=打入+,则下注为0.06
如果下注0.06=没有参加+,则下注为0.03
如果下注0.03=打入+,那么下注标准为0.06
等。
以下是该EA本身。我将非常感谢您的帮助。
在 "Kim "功能中,是否有一个函数可以计算出最后一个未结订单的利润率?
我没有找到,现在我在琢磨一个自制的函数来计算最后一笔开仓订单的利润率。