新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 149

 

下午好。

你能告诉我如何按日期和时间找到正确的条形图,而不需要逐一查看所有条形图吗?

 
Sergey:

下午好。

你能告诉我如何按日期和时间找到正确的条形图,而不需要逐一查看所有条形图吗?


阅读关于iBarShift
 

int TotalPos=-1;

空白启动()。

{
//其余的代码

//--
if(OrdersTotal()!=TotalPos) { //不要对每一个刻度进行折磨
for(int i=OrdersHistoryTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderSymbol()==Symbol() && OrderType()<=1) {
历史()。


}
}}}TotalPos=OrdersTotal(); //记住数量
//--
}



空白历史() {
string Ticket=(string)OrderTicket()。
color col=Red;
如果(OrderType()==0)col=Blue。
datetime a=OrderOpenTime();
double b=OrderOpenPrice();
datetime c=OrderCloseTime()。
double d=OrderClosePrice()。
double prSep=OrderProfit()+OrderCommission()+OrderSwap()。
double prAll=0。
int cn=0。
string hTicket;
for(int i=OrdersHistoryTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderSymbol()==Symbol() && OrderType()<=1) {
datetime ct=OrderCloseTime()。
//网格中第一个订单和最后一个订单的收盘时间相差60秒
如果(c<=ct+60 && c>=ct-60) {
prAll+=OrderProfit()+OrderCommission()+OrderSwap()。
hTicket=(string)OrderTicket()。
cn++。
}
}}}
ObjectCreate(Ticket+"Open",OBJ_ARROW,0,a,b)。
ObjectSet(Ticket+"Open",OBJPROP_COLOR,col)。
ObjectSet(Ticket+"Open",OBJPROP_ARROWCODE,1)。

ObjectCreate(Ticket+"Line",OBJ_TREND,0,a,b,c,d)。
ObjectSet(Ticket+"Line",OBJPROP_COLOR,col)。
ObjectSet(Ticket+"Line",OBJPROP_WIDTH,1)。
ObjectSet(Ticket+"Line",OBJPROP_STYLE,STYLE_DOT)。
ObjectSet(Ticket+"Line",OBJPROP_RAY,0)。

ObjectCreate(Ticket+"Close",OBJ_ARROW,0,c,d)。
ObjectSet(Ticket+"Close",OBJPROP_COLOR,Green)。
ObjectSet(Ticket+"Close",OBJPROP_ARROWCODE,3)。

Ticket=cn>1?hTicket:Ticket。
ObjectCreate(Ticket+"Profit",OBJ_TEXT,0,c,d)。
ObjectSet(Ticket+"Profit",OBJPROP_ANCHOR,0)。
ObjectSetText(Ticket+"Profit",DoubleToString(prAll,2),10, "Arial",White)。
ObjectSet(Ticket+"Profit",OBJPROP_PRICE1,d)。
ObjectSet(Ticket+"Profit",OBJPROP_TIME1,c+Period()*60*2) 。
}

在这个函数的代码中添加什么来在交易的这些地方画一条水平线?

从交易到图表边界的坐标偏移量

 

请帮助我们从.crv文件中读取信息

文件有以下条目。

2010.03.18 01:35:00;1.37409;1.37119

如何编写代码以分别获得变量中的每个值

 
missha32:

请帮助我们从.crv文件中读取信息

文件有以下条目。

2010.03.18 01:35:00;1.37409;1.37119

如何编写代码以分别获得变量中的每个值

在此阅读/学习
Основы программирования на MQL5: Файлы
Основы программирования на MQL5: Файлы
  • 2016.09.28
  • Dmitry Fedoseev
  • www.mql5.com
Статья-практикум по работе с файлами в MQL5. Читайте, выполняйте несложные задания, и к концу статьи вы обретете не только теоретические знания, но и практические навыки по работе с файлами в MQL5.
 
Alexander Antoshkin:

int TotalPos=-1;

空白启动()。

{
//其余的代码

//--
if(OrdersTotal()!=TotalPos) { //不要对每一个刻度进行折磨
for(int i=OrdersHistoryTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderSymbol()==Symbol() && OrderType()<=1) {
历史()。


}
}}}TotalPos=OrdersTotal(); //记住数量
//--
}



空白历史() {
string Ticket=(string)OrderTicket()。
color col=Red;
如果(OrderType()==0)col=Blue。
datetime a=OrderOpenTime();
double b=OrderOpenPrice();
datetime c=OrderCloseTime()。
double d=OrderClosePrice()。
double prSep=OrderProfit()+OrderCommission()+OrderSwap()。
double prAll=0。
int cn=0。
string hTicket;
for(int i=OrdersHistoryTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderSymbol()==Symbol() && OrderType()<=1) {
datetime ct=OrderCloseTime()。
//网格中第一个订单和最后一个订单的收盘时间相差60秒
如果(c<=ct+60 && c>=ct-60) {
prAll+=OrderProfit()+OrderCommission()+OrderSwap()。
hTicket=(string)OrderTicket()。
cn++。
}
}}}
ObjectCreate(Ticket+"Open",OBJ_ARROW,0,a,b)。
ObjectSet(Ticket+"Open",OBJPROP_COLOR,col)。
ObjectSet(Ticket+"Open",OBJPROP_ARROWCODE,1)。

ObjectCreate(Ticket+"Line",OBJ_TREND,0,a,b,c,d)。
ObjectSet(Ticket+"Line",OBJPROP_COLOR,col)。
ObjectSet(Ticket+"Line",OBJPROP_WIDTH,1)。
ObjectSet(Ticket+"Line",OBJPROP_STYLE,STYLE_DOT)。
ObjectSet(Ticket+"Line",OBJPROP_RAY,0)。

ObjectCreate(Ticket+"Close",OBJ_ARROW,0,c,d)。
ObjectSet(Ticket+"Close",OBJPROP_COLOR,Green)。
ObjectSet(Ticket+"Close",OBJPROP_ARROWCODE,3)。

Ticket=cn>1?hTicket:Ticket。
ObjectCreate(Ticket+"Profit",OBJ_TEXT,0,c,d)。
ObjectSet(Ticket+"Profit",OBJPROP_ANCHOR,0)。
ObjectSetText(Ticket+"Profit",DoubleToString(prAll,2),10, "Arial",White)。
ObjectSet(Ticket+"Profit",OBJPROP_PRICE1,d)。
ObjectSet(Ticket+"Profit",OBJPROP_TIME1,c+Period()*60*2) 。
}

在这个函数的代码中添加什么来在交易的这些地方画一条水平线?

从交易到图表边界的坐标偏移量

类似这样的事情。

string level="Level"+IntegerToString(iTime(_Symbol,iBarShift(OrderCloseTime())); // ид.уровня - по времени бара (!! не по тикету)

if (ObjectFind(level)‌==-1) {

  // гор.вектора нет - видимо первый ордер из закрытых на баре

  // сделать горизонтальную линию‌

  ObjectCreate(0,level,OBJ_TREND,0,OrderCloseTime(),OrderClosePrice(),OrderCloseTime()+PeriodSeconds(_Period)*3,OrderClosePrice);

 // указывающую только вправо‌

  ObjectSetInteger(level,‌OBJPROP_RAY,1);

  ObjectSetInteger(level,OBJPROP_RAYLEFT,0);

‌ // украсить её как-то :-)

 ObjectSetInteger(level,OBJPROP_‌COLOR,....)

 ....‌

} else {

  // гор.уровень есть - значит были ордера закрытые на этом баре

  // по фантазии - обновить метки/корректировать уровень/etc‌

}‌

 

下午好!

终端没有看到机器人的原因是什么?它是由当地的一个程序员编写的。其他机器人部分可见,部分不可见。

 
Serg_72:

下午好!

终端没有看到机器人的原因是什么?它是由当地的一个程序员编写的。其他机器人部分可见,部分不可见。

而 "本地程序员 "不能告诉你为什么你不能运行他的机器人?
 

晚上好!

请帮助我写这个代码,我觉得我自己做不到。

当我在欧元兑美元 上运行EA时,如果我在这个货币对上没有任何未结/挂单,我应该下两个挂单。

如果其中一个触发了,另一个就不会显示,即该货币对上所有挂单的总和不应该超过2,而且不应该考虑到其他货币对上已经显示的挂单/开单。

我已经绞尽脑汁了,它根本不放任何东西,然后它放每一个勾。

我非常感谢它。

我将非常感谢它。

 
Serg_72:

下午好!

终端没有看到机器人的原因是什么?它是由当地的一个程序员编写的。其他机器人部分可见,部分不可见。

机器人应位于 "专家 "文件夹中,其形式为*.ex4(*.ex5为5)。
在终端 - 菜单 "文件/打开数据文件夹 "然后 "MQL4/专家"。

而*.mq4 *.mq5的源代码将无法启动--它需要被编译。

同时,把那个没有告诉你如何使用他的产品的程序员的头拧下来。