[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 927

 
RekkeR:
在这个例子上,如果不是太难,你能不能把你的鼻子探进去。
:)))

int init()
{
int draw_begin;
string short_name;
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexShift(0,MA_Shift);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
if(MA_Period<2) MA_Period=13;
draw_begin=MA_Period-1;
//---- indicator short name
switch(MA_Method)
{
case 1 : short_name="EMA("; draw_begin=0; break;
case 2 : short_name="SMMA("; break;
case 3 : short_name="LWMA("; break;
default :
MA_Method=0;
short_name="SMA(";
}
IndicatorShortName("");
SetIndexDrawBegin(0,draw_begin);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer);
SetIndexLabel(0,"");
//---- initialization done
return(0);
}
这应该有帮助。
 

试着编辑帖子,它写了太多的文字,而且无法粘贴修改。

这是代码中经过编辑的部分还是额外的部分?

 
dimon74:
嗨,伙计们,你们能不能告诉我: 滑移量- 最大滑移量的数值,单位是点。它是什么,有什么用?我总是把它设置为零。也许改变它是有意义的。我的经纪公司可以改变吗?提前感谢您!

滑点是你的经纪人开仓交易时的最大滑点值(即你还想在一个对你更不利的价格进行交易),你应该把它设置为2或3或5。"0 "是一个太小的公差,你在真实的市场条件下为经纪人定义。

 
RekkeR:

试着编辑帖子,它写了太多的文字,而且无法粘贴修改。

这是代码中经过编辑的部分还是额外的部分?


只有init()函数需要被修复

而SRC按钮是用来粘贴代码

 
Vinin:


只是init()函数,需要修正。

而SRC按钮是用来插入代码的

谢谢你,维克多,我周末会自己学习的,这是件有趣的事情,编码。

我将向你报告结果!

 

伙计,我明白你在这个主题中问了一百次同样的问题,你很生气。

作为一个初学者,我当然会自己理解,因为自己做每件事都很有趣。

我可能是个初学者,我会自己想办法,什么都自己做很有意思。

我一直对此感兴趣,但在看EA时,我还是被卡住了。

可能问题不在EA,而在DC?

extern double StopLoss=1000.0;
extern double TakeProfit=1000.0;
extern double Lots=1.0;
extern int total;


int start() {

int dg;
double Price_1,Price_2,min,max,pa,pb,pt;

pt=MarketInfo(Symbol(),MODE_POINT);
dg=MarketInfo(Symbol(),MODE_DIGITS);
pa=MarketInfo(Symbol(),MODE_ASK);
pb=MarketInfo(Symbol(),MODE_BID);
Price_1=pb;
Price_2=pa;
min=iLow(NULL,0,2);
max=iHigh(NULL,0,2);
total=OrdersTotal();

double slB=NormalizeDouble(pa-StopLoss*pt,dg);
double tpB=NormalizeDouble(pa+TakeProfit*pt,dg);
double slS=NormalizeDouble(pb+StopLoss*pt,dg);
double tpS=NormalizeDouble(pb-TakeProfit*pt,dg);

  if(total<1) 
  {
   if(Price_1>max)
      OrderSend(Symbol(),OP_BUY,Lots,pa,2,slB,tpB,"My order#",16384,0,Green);

   if(Price_2<min)
      OrderSend(Symbol(),OP_SELL,Lots,pb,2,slS,tpS,"My order#",16384,0,Green);
  }

}

帮助?

 
artmedia70:

在历史中寻找该订单,如果你找到它,比较它的收盘价 OrderClosePrice()和它的StopLoss OrderStopLoss()水平

如果它们相等,说明该头寸在止损处被关闭。

大约明白了,谢谢,我会在解决第一个问题后再处理。
 
gheka:

我理解,当同样的问题在这个主题中被问了一百次时,你们会很生气。


当你不开仓时,你会得到什么样的错误?你可以试试这个

 if(total<1) 
  {
   if(Price_1>max)
      OrderSend(Symbol(),OP_BUY,Lots,Ask,100,slB,tpB,"My order#",16384,0,Green);

   if(Price_2<min)
      OrderSend(Symbol(),OP_SELL,Lots,Bid,100,slS,tpS,"My order#",16384,0,Green);
  }
 
gheka:

伙计,我明白你在这个主题中问了一百次同样的问题,你很生气。

作为一个初学者,我当然会自己理解,因为自己做每件事都很有趣。

我可能是个初学者,我会自己想办法,什么都自己做很有意思。

我一直对此感兴趣,但在看EA时,我还是被卡住了。

可能问题不在EA,而在DC?

帮助?


也许你的经纪公司不允许明确指定采取和停止头寸,请检查一下--在开仓指令功能中把零放在它们的位置上。
 
gheka:

伙计,我明白你在这个主题中问了一百次同样的问题,你很生气。

作为一个初学者,我当然会自己理解,因为自己做每件事都很有趣。

我可能是个初学者,我会自己想办法,什么都自己做很有意思。

我一直对此感兴趣,但在看EA时,我还是被卡住了。

可能问题不在EA,而在DC?

帮助?


如果至少有一个位置是开放的(任何 - 通过手工,通过另一个EA),这个EA将不会工作。
原因: