[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 174

 

指値が設定できない場合に成行注文が発動される領域です。もしかして、ここが問題なのでは?テスターでは動いたのに :(

ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,timecl,blue).のようになります。
if(ticket<1){//エラー処理
err=GetLastError()です。
if(err==147){///タイムアウト
Err147=true。
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,0,blue).のようになります。
if(ticket>0){。
WriteOrder(ticket,timecl)を実行します。
}else{
err=GetLastError()です。
if(err==130){。
if(Set_order_from_market){。
RefreshRates()。
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,マジック,0,ブルー)とする。
if(ticket<1){。
err=GetLastError()です。
Print("Error setting order from market # ",err,
" 注文の種類 = BUY ",
"始値=",Ask,
" 価格 = ",Ask,
" ストップロス = ",sll,
" TakeProfit = ",tpp)。
}
}else{
}
}
}
}
if(err==130){。
if(Set_order_from_the_market){
RefreshRates()。
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,マジック,0,ブルー)とする。
if(ticket<1){。
err=GetLastError()です。
Print("Error setting order from market # ",err,
" 注文の種類 = BUY ",
"始値=",Ask,
" 価格 = ",Ask,
" ストップロス = ",sll,
" TakeProfit = ",tpp)。
}
}else{
}
}
Print("4オーダー設定エラー#",err);
}
}
}
}
 

関数の先頭に置く
sll = NormalizeDouble (sll, MarketInfo( Symbol (), MODE_DIGITS)); tpp = NormalizeDouble (tpp, MarketInfo( Symbol (), MODE_DIGITS))

 
alsu:

put
sll = NormalizeDouble (sll, MarketInfo( Symbol (, MODE_DIGITS)); tpp = NormalizeDouble (tpp, MarketInfo( Symbol (, MODE_DIGITS)) とする。)



スタンドはこんな感じ。残念ながら、私はあまりコードに詳しくないのですが...。

if(typ>0){
if(CountOpOrd(4,magic)<1){。
if(buy!=0){。
if(OpPrise(buy){RefreshRates()です。
if(buy-Ask<stlw*Point){NormalizeDouble(Ask+stlw*Point,Digits);}となります。
if(sl<0){sll=NormalizeDouble(buy-((buy-sell)*(sl/(-100))),Digits);}; }.
if(sl>0){sll=NormalizeDouble(buy-sl*Point*mno,Digits);}.
if(tp>){tpp=NormalizeDouble(buy+tp*Point*mno,Digits);}.
if(tp<0){tpp=NormalizeDouble(buy+((buy-sell)*(-tp/100))),Digits);}; }; }。
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,timecl,Blue);
if(ticket<1){//エラー処理
err=GetLastError()です。
if(err==147){//expiration timeを 無効にする。
Err147=true。
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,0,blue).のようになります。
if(ticket>0){。
WriteOrder(ticket,timecl)を実行します。
}else{
err=GetLastError()です。
if(err==130){。
if(Set_order_from_market){。
RefreshRates()。
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,マジック,0,ブルー)とする。
if(ticket<1){。
err=GetLastError()です。
Print("Error setting order from market # ",err,
" 注文の種類 = BUY ",
"始値=",Ask,
" 価格 = ",Ask,
" ストップロス = ",sll,
" TakeProfit = ",tpp)。
}
}else{
}
}
}
}
if(err==130){。
if(Set_order_from_the_market){
RefreshRates()。
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,マジック,0,ブルー)とする。
if(ticket<1){。
err=GetLastError()です。
Print("Error setting order from market # ",err,
" 注文の種類 = BUY ",
"始値=",Ask,
" 価格 = ",Ask,
" ストップロス = ",sll,
" TakeProfit = ",tpp)。
}
}else{
}
}
Print("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は 連絡がつかない:(

私自身は、バグのないバージョンを待っています。もしかしたら、出してくれるかもしれない・・・。

 
ALERTサインはどのように呼ばれるのですか? なぜなら、そのシグナルが出されたときにビープ音とゴーゴー音が鳴り、それが見つからないからです((...)
 
Rossi:
ALERT テーブルはどのように呼び出されるのですか? なぜなら、信号が与えられるとそのビープ音とゴーゴー音が鳴り、それを見つけることができないからです((...
アラート()
 
クローズドオーダーの選択方法を教えてください。ポイントは、私はポジション(手動で開き、位置は常に1になります - これは最大です)を閉じたいので、音楽は、順序がプラスにあった場合、負の場合は、他の、ヌルでは、その後第三に演奏されます。OrderProfitから条件を入力することはできますが、最後に閉じた注文を履歴から削除する方法がわかりません。