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

 
NEKSUS_ >> :

下午好,先生们,再次请你们帮助解决消除对象的脚本。

脚本按名称删除了几个对象,但在启动时却弹出了一百个错误(更准确地说,是同一个错误,但却出现了很多次),请帮助我们吧。


我认为这段花哨的代码是为了从图表中删除所有名称中带有数字的对象? 那么,在所有的ifs前加上else,除了第一个。否则你的指数x在第一次迭代时就已经落入了负区。

 
NEKSUS_ >> :

下午好,先生们,再次请你们帮助解决消除对象的脚本。

脚本按名称杀死了一些对象,但在启动时却弹出了好几百个错误(更确切地说,是同一个错误,但却是多次)帮助ps。


替换这个循环 for (int x = ObjectsTotal(); x>0 ; x--) (只纠正错误,如更多或相等,从对象的数量中取1),并删除ifs中所有的 "x--;"

 
dmmikl86 >> :

帮助我给指标着色,我希望它在数值上升时为绿色,下降时为红色。

这里是代码。


这里有一个帮助

https://www.mql5.com/ru/articles/1451

实施三色指示器和一些功能,使写指示器尽可能简单

 
alsu >> :

我理解这段复杂的代码是为了从图表中删除所有名称中带有数字的对象? 好吧,那么把所有的if放在前面,除了第一个,还有else也是。因为在第一次迭代时,你的指数x已经落在了负值区域。


它不会失败,很难找到一个索引为负数的对象,或者说它可能会失败,但最多是1。
 

亲爱的专业人士,请帮助。我们的想法是,EA应该创建一个订单,如果该订单失败,则再次创建相同的订单。但它没有?

//--------------------------------------------------------------- 0 ----------------

int start() // 特殊功能启动

{

int H=100; // 设置时间 - 秒

int Dist=10; //设置 TP SL

double Lot=1; //设置 lot

//--------------------------------------------------------------- 1 ----------------

双重i=0.001。

double Cena=NormalizeDouble(Ask,3); // normalize price

double Price=NormalizeDouble(Cena+i,5); // 查找 价格

double TP=Price+Dist*Point; // 查找 TP

double SL=Pric-Dist*Point; //找到 SL

int x=1; // 第一个条件

int y=1; // 第二个 条件

//--------------------------------------------------------------- 2 ----------------

for (int pos=1; pos<=OrdersTotal(); pos++) //循环浏览所有订单

{ 如果(OrderSelect(pos-1,SELECT_BY_POS)==true) //突出一个订单

{ 如果(OrderTakeProfit()==TP)

{ Alert("triggered x");

x=2;

突破。

}

}

else Print("Error ", GetLastError(), " when selects order number ", pos);

}

//--------------------------------------------------------------- 3 ----------------

for (pos=1; pos<=OrdersTotal(); pos++) //循环浏览所有订单

{ 如果(OrderSelect(pos-1,SELECT_BY_POS)==true) //标记一个订单

{ 如果(OrderOpenPrice()==Price)

{ Alert("triggered y");

y=2;

突破。

}

}

else Print("Error ", GetLastError(), " when selects order number ", pos);

}

//--------------------------------------------------------------- 4 ----------------

如果 (x==2&y==2)

{ Alert("This order already exists!!");} }

else { Alert("order has been sent" ,Symbol()," BUYSTOP " , Price," Pending...");

OrderSend(Symbol(), OP_BUYSTOP, Lot, Price, 0, SL, TP);

}

Sleep(H*60); //等待 60

RefreshRates()。

//--------------------------------------------------------------- 5 -------------------

警告 ("脚本已完成工作-----------------------------")。

return; //退出start()。

}

 

我已经安装了MT4(来自forex4you),我正在测试策略,但M1的报价我只有2009年9月2日的,我无法通过报价的服务档案加载它们。

你能告诉我在哪里可以下载至少是2009年的报价档案吗?还有一件事,当我在策略测试器中 设置日期时,报价不会自动下载。

 
albon >> :

我已经安装了MT4(来自forex4you),我正在测试策略,但M1的报价我只有2009年9月2日的,我无法通过报价的服务档案加载它们。

你能告诉我在哪里可以下载至少是2009年的报价档案吗?当我在策略测试器中设置日期时,报价不会自动下载。

尝试安装另一个经纪商的MT4。(即不同的MT4)。

 

亲爱的专业人士,请帮助。我们的想法是,EA应该创建一个订单,如果这个订单失败,再创建同样的订单。但这并没有发生?

它一直在创造订单--无休止地创造。


 
VII >> :

亲爱的专业人士,请帮助。我们的想法是,EA应该创建一个订单,如果该订单失败,则再次创建相同的订单。但它没有?

//--------------------------------------------------------------- 0 ----------------


double Cena=NormalizeDouble(Ask,3); //Normalize价格

它将无法创建相同的订单,因为Ask在每一次打勾时都在不断变化。而所有其他参数和它们在条件下的比较都是由这个变量计算出来的。

 
VII >> :

亲爱的专业人士,请帮助。我们的想法是,EA应该创建一个订单,如果该订单失败,则再次创建相同的订单。但这并没有发生?


我们有两种方法让EA/脚本打开与我们所设定的订单完全相同的订单。首先,我们设置订单,并将其所有参数写入将存储它们的变量中。如果没有订单,我们将切换到待机模式。一旦我们达到可以设置这些参数的订单的条件,我们就会开出一个订单。

其次。一旦订单从市场上消失,翻阅历史,找到最近的订单。我们记录下它的参数,并像在第一种情况下那样打开待机模式。

我唯一想说的是。如果你按照你描述的和我在这里解释的方式建立程序的逻辑,所有的订单将等待同一水平线。你真的需要它吗?

原因: