新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 467 1...460461462463464465466467468469470471472473474...1953 新评论 Konstantin Erin 2018.02.16 17:00 #4661 haron312:你好,请帮助我解决当我试图修改一个订单(转移到Breakeven)时,在测试器中出现的错误:我把OrderOpenPrice()函数而不是SL,但测试器显示错误1(根据文档,这意味着有一个试图传递未改变的值作为参数给函数)。我附上代码!提前感谢您! void DeleteOrderFunction2() //删除第二个挂单的函数,并在某天晚上将第二个订单保存到Breakeven。{bool flag = false。如果(FlagDeleteSecondOrder2 == true){如果(DayOfWeek() == DAYOFWEEK && //如果选择了一个工作日Hour() == 22 //if evening){如果(BuyCount() == 1 && if(有一个 未平仓的买入订单)SellStopCount() == 1 //有一个卖出挂单){for( int i = 0; i < OrdersTotal(); i++)//创建订单{OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)switch(OrderType()){case OP_BUY: if(OrderProfit() > 0 &&)Bid > OrderOpenPrice()){OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color)。标志=true。}突破。case OP_SELLSTOP: if(flag==true){OrderDeleteX(OrderTicket(), Arrow_Color)。}突破。}}}如果(SellCount() == 1 && // 如果有一个开放的卖出订单BuyStopCount() == 1 //有一个买入挂单。){ 打印("IS!!!!")。for( int i = 0; i < OrdersTotal(); i++)//创建订单{OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)switch(OrderType()){case OP_SELL: 如果(OrderProfit() > 0 &&)Ask < OrderOpenPrice()){OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color)。flag = true;Print("flag =", flag);}突破。case OP_BUYSTOP: if(flag == true){Print("flag =", flag);OrderDeleteX(OrderTicket(), Arrow_Color)。}突破。}}}}}} 假设OP_BUY在订单中是第一次遇到,你修改它并设置标志=true,当它被遇到时,待定订单将被删除。看看如果第一次遇到挂单会发生什么... Rewerpool 2018.02.18 14:38 #4662 帮我把指标转化 为脚本! double buf_1[]; double buf_2[]; //+------------------------------------------------------------------+ //| Функция инициализации, запускается один раз | //+------------------------------------------------------------------+ int init() { SetIndexBuffer(0,buf_1); SetIndexBuffer(1,buf_2); SetIndexStyle (0,DRAW_ARROW, STYLE_SOLID, 1); SetIndexStyle (1,DRAW_ARROW, STYLE_SOLID, 1); SetIndexArrow (0,233); SetIndexArrow (1,234); SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); return(0); } //+------------------------------------------------------------------+ //| Основная Функция, запускается на каждом тике | //+------------------------------------------------------------------+ int start() { if (Bars <= 100) return(0); int ExtCountedBars = IndicatorCounted(); if (ExtCountedBars < 0) return(-1); if (ExtCountedBars > 0) ExtCountedBars--; for (int i=Bars-ExtCountedBars-1; i>=0; i--) { if (High [i+2] == High[i+3]) bool DOWN = High[i+1]== High[i+2]; if (Low [i+2] == Low [i+3]) bool UP = Low[i+1]==Low[i+2] ; if (UP) buf_1[i+1] = Low[i+1]-3*Point; if (DOWN) buf_2[i+1] = High[i+1]+3*Point; } return(0); } // ---- end 如果写iHigh(NULL,PERIOD_H1,[i+2])和iLow(NULL,PERIOD_H1,[i+2]) 而不是High [i+2]和Low[i+1],那么你可以控制时间框架? 如果Hai匹配卖出,如果Loh买入! Konstantin Erin 2018.02.18 15:13 #4663 Rewerpool:帮我把指标转化 为脚本! 如果写iHigh(NULL,PERIOD_H1,[i+2])和iLow(NULL,PERIOD_H1,[i+2]) 而不是High [i+2]和Low[i+1],那么你可以控制时间框架? 如果Hai匹配卖出,如果Loh买入!三个巧合将不得不等待很长时间 Rewerpool 2018.02.18 15:23 #4664 STARIJ:三次打击将不得不等待很长时间。我不是黄牛党,我会等。我们可以对4位数进行归一化。 Pavel Kolchin 2018.02.18 15:26 #4665 在mql5中,我们有未结头寸,我找到这个头寸的所有交易,并确定它们是由市场订单还是挂单 打开的 在mql4中,我怎样才能发现一个未结头寸是由市场订单还是挂单打开的,当挂单触发时,它的代码发生了变化? Konstantin Erin 2018.02.18 15:38 #4666 Rewerpool: 我不是黄牛党,我会等。我们可以对4位数进行归一化。是的,结果是弱的......。 5个Hai的匹配,价格就上去了。 Konstantin Erin 2018.02.18 15:39 #4667 Pavel Kolchin:在mql5中,我们有未结头寸,我找到这个头寸的所有交易,并确定它们是由市场订单还是挂单 打开的 在mql4中,我怎样才能知道未结订单是由市场开出的还是挂单开出的,当挂单触发时,它们的代码会发生变化?赋予他们不同的魔力 Pavel Kolchin 2018.02.18 15:45 #4668 STARIJ:赋予他们不同的魔力订单是由用户打开的,我需要在打开时定义其类型 Roman Sharanov 2018.02.18 16:00 #4669 问题是什么会 "加载更多":在每个定义的InChartEvent中重新定义指标手柄,还是在OnInit中事先将所有可能的手柄定义为一个数组? Artyom Trishkin 2018.02.18 16:01 #4670 Roman Sharanov: 问题是什么会 "加载更多":在每个定义的InChartEvent中重新定义指标手柄,还是在OnInit中事先将所有可能的手柄定义为数组? 不同。 1...460461462463464465466467468469470471472473474...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好,请帮助我解决当我试图修改一个订单(转移到Breakeven)时,在测试器中出现的错误:我把OrderOpenPrice()函数而不是SL,但测试器显示错误1(根据文档,这意味着有一个试图传递未改变的值作为参数给函数)。我附上代码!提前感谢您!
void DeleteOrderFunction2() //删除第二个挂单的函数,并在某天晚上将第二个订单保存到Breakeven。
{
bool flag = false。
如果(FlagDeleteSecondOrder2 == true)
{
如果(DayOfWeek() == DAYOFWEEK && //如果选择了一个工作日
Hour() == 22 //if evening
)
{
如果(BuyCount() == 1 && if(有一个 未平仓的买入订单)
SellStopCount() == 1 //有一个卖出挂单
)
{
for( int i = 0; i < OrdersTotal(); i++)//创建订单
{
OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)
switch(OrderType())
{
case OP_BUY: if(OrderProfit() > 0 &&)
Bid > OrderOpenPrice()
)
{
OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color)。
标志=true。
}
突破。
case OP_SELLSTOP: if(flag==true)
{
OrderDeleteX(OrderTicket(), Arrow_Color)。
}
突破。
}
}
}
如果(SellCount() == 1 && // 如果有一个开放的卖出订单
BuyStopCount() == 1 //有一个买入挂单。
)
{ 打印("IS!!!!")。
for( int i = 0; i < OrdersTotal(); i++)//创建订单
{
OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)
switch(OrderType())
{
case OP_SELL: 如果(OrderProfit() > 0 &&)
Ask < OrderOpenPrice()
)
{
OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color)。
flag = true;Print("flag =", flag);
}
突破。
case OP_BUYSTOP: if(flag == true)
{
Print("flag =", flag);
OrderDeleteX(OrderTicket(), Arrow_Color)。
}
突破。
}
}
}
}
}
}
帮我把指标转化 为脚本!
如果写iHigh(NULL,PERIOD_H1,[i+2])和iLow(NULL,PERIOD_H1,[i+2]) 而不是High [i+2]和Low[i+1],那么你可以控制时间框架?
如果Hai匹配卖出,如果Loh买入!
帮我把指标转化 为脚本!
如果写iHigh(NULL,PERIOD_H1,[i+2])和iLow(NULL,PERIOD_H1,[i+2]) 而不是High [i+2]和Low[i+1],那么你可以控制时间框架?
如果Hai匹配卖出,如果Loh买入!
三个巧合将不得不等待很长时间
三次打击将不得不等待很长时间。
我不是黄牛党,我会等。我们可以对4位数进行归一化。
在mql5中,我们有未结头寸,我找到这个头寸的所有交易,并确定它们是由市场订单还是挂单 打开的
在mql4中,我怎样才能发现一个未结头寸是由市场订单还是挂单打开的,当挂单触发时,它的代码发生了变化?
是的,结果是弱的......。
5个Hai的匹配,价格就上去了。
在mql5中,我们有未结头寸,我找到这个头寸的所有交易,并确定它们是由市场订单还是挂单 打开的
在mql4中,我怎样才能知道未结订单是由市场开出的还是挂单开出的,当挂单触发时,它们的代码会发生变化?
赋予他们不同的魔力
赋予他们不同的魔力
订单是由用户打开的,我需要在打开时定义其类型
问题是什么会 "加载更多":在每个定义的InChartEvent中重新定义指标手柄,还是在OnInit中事先将所有可能的手柄定义为数组?