[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 148

 

谢谢你的提示--我修改了一下代码,如果没有下面这行代码,EA在每一个点 上都能打开点。

而在我粘贴了代码行后=EA完全按照我的计划开了一个仓位。

int start()
   {
// начало открытия ордеров 
   if (OrdersTotal()>0)return(0);
 
first_may:

CME是什么?

o_o -CME
 
BeerGod:
以前也发生过,我想这是DC的阴谋,所以要测试什么都是有问题的。
DC与从历史数据服务器下载的报价没有关系。
 
DC与从历史数据服务器下载的报价没有关系。

嗯,所有的东西都是 "据说 "从一个服务器上下载的......另外,我以为在测试器中,当前账户的杠杆率没有影响......但有些经纪公司有这样的街头魔力......可能有些经纪公司也能玩转报价?(虽然所有的人在这里可能都有问题)...
 
alex12:

谢谢你的提示--我纠正了一下代码,的确,如果没有下面的代码行,EA在每一个tick上都能打开点。

而在我粘贴了代码行后=EA完全按照我的计划开了一个仓位。

嗯...这只是与计划中的一个表面上的对应关系。这种结构不考虑符号、命令类型或其魔力。也就是说,如果有另一个EA在账户上为另一个符号工作,那么这个EA就不会工作,因为我们已经有了一个位置。如果只有这个EA在工作,但有一个卖出头寸,而买入头寸需要打开,它就不会打开--头寸已经存在,还有许多其他可能的规则,例如,你已经手动打开了一个头寸或设置了一个挂单--就是这样,EA已经上升...

你需要特别检查:是否已经有一个这样的符号,这样的魔术师,这样的类型的空缺职位?如果没有--------打开。

 
artmedia70:

嗯...它只是与计划中的一个明显的匹配。这种设计没有考虑到符号、命令类型或其魔力。这意味着,如果有另一个EA在为账户中的另一个符号工作,那么这个EA将不会工作,因为已经有一个位置。如果只有这个EA在工作,但有一个卖出头寸,而买入头寸需要打开,它就不会打开--头寸已经存在,还有许多其他可能的规则,例如,你已经手动打开了一个头寸或设置了一个挂单--就是这样,EA已经上升...

你需要特别检查:是否已经有一个这样的符号,这样的魔术师,这样的类型的空缺职位?如果没有--打开。

谢谢你。是的,因为这个EA只打开买入头寸以继续运动
,只有在关闭买入头寸后才会采取。例如,如果买入头寸打开,价格下降到
设定的水平,那么另一个买入头寸不会被打开(应该由TS打开)。
我在发送订单行-价格部分规定了一定的价格,见下面的代码。
我的任务是在EA中编写正确的代码=在打开买入头寸后再打开一个买入头寸,
,如果价格下降到一个给定的水平--再打开一个买入头寸。因此,无论在代码中价格没有越过什么水平
,总是打开买入头寸,不管有多少

目前有开放的职位。

extern double Lot=1;

int g=20; //тейкпрофит

double price[10];   // Заданный уровень 

//-----------------------
 
int init()
  {
  
double price[10];   // объявляем массив из 5 элементов  
           
price[0] = 1.2100; // обращаемся к первому элементу массива и 
                   // присваиваем ему цену. Обратите внимание 
                   // на то, что индекс первого элемента 
                   // начинается с 0. Это важная особенность,
                   // к которой нужно привыкнуть.   
 
price[1] = 1.2200;  // обращаемся ко второму элементу 
price[2] = 1.2300;  // и так далее 
price[3] = 1.2400; 
price[4] = 1.2500;
price[5] = 1.2600; 
price[6] = 1.2700;  
price[7] = 1.2800; 
price[8] = 1.2900;
price[9] = 1.3000;  

   return(0);
  }
//---------------
int start()
   {
// начало открытия ордеров 
   if (OrdersTotal()>0)return(0);
   
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)//проверка наличия откр.поз
   price[0]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2100,10,0,Ask+g*Point,"My order #",11);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[1]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2200,10,0,Ask+g*Point,"My order #",12);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[2]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2300,10,0,Ask+g*Point,"My order #",13);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[3]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2400,10,0,Ask+g*Point,"My order #",14);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[4]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2500,10,0,Ask+g*Point,"My order #",15);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[5]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2600,10,0,Ask+g*Point,"My order #",16);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[6]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2700,10,0,Ask+g*Point,"My order #",17);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[7]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2800,10,0,Ask+g*Point,"My order #",18);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[8]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2900,10,0,Ask+g*Point,"My order #",19);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[9]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.3000,10,0,Ask+g*Point,"My order #",20);
   }
      return(0);
  }
//+------------------------------------------------------------------+
 
下午好。我想对代码进行优化。 我在指标中加入了三个缓冲区。然后我对其中的信号进行了长时间的搜索。 首先我搜索MA1[],然后是МА2[]和МА3[]。区别只在于用于计算的缓冲区名称的一个数字。是否有可能将代码循环起来。
 
alex12:
是的,这是对的,因为这个EA只在移动的继续上开出白盘,并且
只有在关闭买入头寸后,才能在....。
开头的大括号{必须放在price[...]=Ask;之前(见下文)。再次阅读关于 "如果 "操作符。如果在if后面没有括号,它只处理一个动作(你有price[...]=Ask;),如果你需要几个动作,它们应该放在if后面{...}中。
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)//проверка наличия откр.поз
   { 
      price[0]=Ask;
      OrderSend (Symbol(),OP_BUY,Lot,1.2100,10,0,Ask+g*Point,"My order #",11);
   }
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   {
      price[1]=Ask;
      OrderSend (Symbol(),OP_BUY,Lot,1.2200,10,0,Ask+g*Point,"My order #",12);
   }
 

下午。

我需要2009年以前的欧元兑美元m5/m15 历史,有人能分享他们的吗?(即你调试你的专家的那台)。

我将非常感激。

 
ewoke:

下午。

我需要2009年以前的欧元兑美元m5/m15历史,有人能分享他们的吗?(即你调试你的专家的那台)。

我将非常感激。

在终端打开的情况下按F2,然后进入Fx Major -> EURUSD -> 1 Minute (M1) -> Download。