[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 174

 

这是在无法设置限价的情况下触发市场订单的区域。也许这就是问题所在?它在测试器中工作 :(

ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,timecl,blue)。
如果(ticket<1){//错误处理
err=GetLastError()。
如果(err==147){//超时
Err147=true。
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,0,Blue);
如果(ticket>0){
WriteOrder(ticket,timecl);
}else{
err=GetLastError()。
如果(err==130){
如果(Set_order_from_market){
RefreshRates()。
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,magic,0,Blue);
如果(ticket<1){
err=GetLastError()。
Print("从市场上设置订单的错误#",err,
"订单类型=购买"。
"开盘价=",Ask,
" 价格=",Ask,
" Stop Loss = ",sll,
" TakeProfit = ",tpp);
}
}else{
}
}
}
}
如果(err==130){
如果(Set_order_from_the_market){
RefreshRates()。
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,magic,0,Blue);
如果(ticket<1){
err=GetLastError()。
Print("从市场上设置订单的错误#",err,
"订单类型=购买"。
"开盘价=",Ask,
" 价格=",Ask,
" Stop Loss = ",sll,
" TakeProfit = ",tpp);
}
}else{
}
}
打印("4订单设置错误#",err)。
}
}
}
}
 

放在函数的开头
sll = NormalizeDouble (sll, MarketInfo( Symbol ( ), MODE_DIGITS)); tpp = NormalizeDouble ( tpp, MarketInfo( Symbol ( ), MODE_DIGITS))

 
alsu:


sll = NormalizeDouble (sll, MarketInfo( Symbol ( ), MODE_DIGITS)); tpp = NormalizeDouble ( tpp, MarketInfo( Symbol ( ), MODE_DIGITS))。



像这样站着。不幸的是,我对代码不是很精通...

如果(typ>0){
如果(CountOpOrd(4,magic)<1){
如果(buy!=0){
如果(OpPrise(buy){RefreshRates();
如果(buy-Ask<stlw*Point){NormalizeDouble(Ask+stlw*Point,Digits); }
如果(sl<0){sll=NormalizeDouble(buy-((buy-sell)*(sl/(-100)),Digits);}.
如果(sl>0){sll=NormalizeDouble(buy-sl*Point*mno,Digits);}。
如果(tp>){tpp=NormalizeDouble(buy+tp*Point*mno,Digits);}。
如果(tp<0){tpp=NormalizeDouble(buy+((buy-sell)*(-tp/100)),Digits); }
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,timecl,Blue);
如果(ticket<1){//错误处理
err=GetLastError()。
如果(err==147){//不允许过期时间
Err147=true。
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,0,Blue);
如果(ticket>0){
WriteOrder(ticket,timecl);
}else{
err=GetLastError()。
如果(err==130){
如果(Set_order_from_market){
RefreshRates()。
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,magic,0,Blue)。
如果(ticket<1){
err=GetLastError()。
Print("从市场上设置订单的错误#",err,
"订单类型=购买"。
"开盘价=",Ask,
" 价格=",Ask,
" Stop Loss = ",sll,
" TakeProfit = ",tpp);
}
}else{
}
}
}
}
如果(err==130){
如果(Set_order_from_the_market){
RefreshRates()。
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,magic,0,Blue)。
如果(ticket<1){
err=GetLastError()。
Print("从市场上设置订单的错误#",err,
"订单类型=购买"。
"开盘价=",Ask,
" 价格=",Ask,
" Stop Loss = ",sll,
" TakeProfit = ",tpp);
}
}else{
}
}
打印("4订单设置错误#",err)。
}
}
}
}
 

逻辑是混乱的,你无法弄清楚。

这条线根本就没有什么作用。

if(buy-Ask<stlw*Point){NormalizeDouble(Ask+stlw*Point,Digits);

写这篇文章的人需要先搞清楚:))。

一般来说,在你开单前就把我的线放好。无论如何,这不会使情况变得更糟,但如果错误持续存在,就会很明显地发现它是由违反停止水平造成的,因为130没有其他选择。

 
alsu:

逻辑是混乱的,你无法弄清楚。

这条线根本就没有什么作用。

写这篇文章的人需要先搞清楚:))。

一般来说,在你开单前就把我的线放好。无论如何,这不会使情况变得更糟,但如果错误持续存在,就会很明显是由违反停止水平造成的,因为130是产生错误的唯一途径。

https://www.mql5.com/ru/code/10111- 这里。也许这里有一个答案...。
 

提供线索的人有点歪打正着...

你最好问问作者,给我看看我的台词,它什么也不做。xrust 是个有经验的人,他会想出办法来纠正。

 
alsu:

有点歪的EA...

你最好问问作者,给我看看我的台词,它什么都不做。xrust 是个有经验的人,他会想出如何调整的办法。


至少他是这样的 :)

有一些错误,但不是致命的...

xrust 没有取得联系 :(

我自己也在等待一个没有bug的版本。也许他将把它放出来...

 
警报信号是怎么叫的? 因为在发出信号的时候会听到哔哔啵啵的声音,我找不到它((...)
 
Rossi:
ALERT表是如何调用的? 因为它在发出信号时发出哔哔声和潺潺声,我找不到它((... )。
警报()
 
请告诉我如何选择一个已关闭的订单?重点是,我想关闭一个位置(如果我手动打开它,并且位置将永远是一个 - 这是最大的),所以音乐将播放,如果订单是在加号,然后另一个如果是减号,然后第三个如果它是什么都没有。你可以通过OrderProfit输入条件,但我不知道如何从历史中删除最后一个关闭的订单。