[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 405

 
Max2000 >>:

Здравствуйте,

Как сделать чтобы советник не закрывал сделку раньше 3 мин.??

Может кто подскажет, что и где прописать?

if ((TimeCurrent()-OrderOpenTime())<3*60)
return; //or 似たようなもので、既存のコードに依存します。

 
splxgf >>:

if ((TimeCurrent()-OrderOpenTime())<3*60)
return; //или что-то в этом роде, зависит от существующего кода.

終了条件が注文開始後3分より遅い場合、それ以前に注文が終了することはない(もちろん、保留中の注文でない場合だが、その注文も10分より前に勝手に削除される)。

 
Noterday >>:

double Lots;
double m = 0.1;


for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}

Почему у меня Lots всегда оказывается равен нулю?

そこで、どなたかこのコードのどこがおかしいのか、教えていただけませんか?

 
どういう意味だ、見せてみろ)
 
Noterday >>:
Всмысле покажи?)

呆気ない ))

 
Noterday >>:

Ну что, подскажет кто-нибудь что не так в коде?

AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150 この式は最初falseである。

 
やばい...まさに...考え込んでしまう!ありがとうございました。
 
Comment(AccountFreeMarginCheck(Symbol(),OP_SELL, m));


вот эту строчку поставь перед циклом и посмотри что выводит на экран
 

出力 -1000000000000

例えば、預金額が10Kを超える場合、出来高0.1の注文を出した後、(この関数に基づき)-1000000000000 :)))


一般的には、うまくいかないのですが...。

 
Noterday >>:

Выводит -10000000000

Т.е. при депо >10K, после открытия ордера объемом 0.1 останется (исходя из этой функции) -1000000000000 :)))


Вобщем не получается...

https://forum.mql4.com/ru/14675