//попытка сделать функцию: отключение всех индикаторов и разрешение только Бай или Селл в зависимости от того, //что закуплено, когда баланс снижается на заданный процент//второй вариант:bool fOffInd(){int i, b, s;if( UT_AutoOf==1){//если баланс снизился на LossIndikator процентовif( gProfit<=((-1.0)* LossIndikator*AccountBalance())/100.0){Print("Включен автореверс UT_!");
UT_ON=0;//выключатель индикатора, 0-контроль отключен
VRF_ON=0;//выключатель индикатора, 0-контроль отключен//выбираем открытые ордера Бай for( i=1; i<=OrdersTotal(); i++){if(OrderSelect( i-1, SELECT_BY_POS)==true){if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()){ b= b+1;}}}//выбираем открытые ордера Селл for( i=1; i<=OrdersTotal(); i++){if(OrderSelect( i-1, SELECT_BY_POS)==true){if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()){ s= s+1;}}}//если открытых Бай больше чем Селл, то включаем запрет торговли Бай if( s>= b){ CloseAllBuyNow =true;
MaxCount = b;Print("Автореверс. Работаем только Селл!");}else{//если открытых Селл больше чем Селл, то включаем запрет торговли Селл if( b>= s){ CloseAllSellNow =true;
MaxCount = s;Print("Автореверс. Работаем только Бай!");}}return(false);}}else{//все индикаторы должны быть включены и запрет на Бай и Селл снят
UT_ON=1;
VRF_ON=1;
CloseAllBuyNow =false;
CloseAllSellNow =false;}return(0);}
交差点は別の方法で確認する方が簡単で早い
速度が速くなる。論理的に複雑な表現は、単純な表現よりも実行に時間がかかる。乗算は論理より速いVininさん、 ありがとうございます!トレード回数はどうでしょうか、MAを越えてから1.2...N回だけと書けますか?
Пересечение проще и быстрее проверять по другому
Скорость работы выше. Логические сложные выражение выполняются дольше простых. Умножение быстрее логическогоという選択肢もありますが、質問者はまだ理解していないでしょう。
Vininさん、 ありがとうございます!トレード数はどうでしょうか、MAクロス後、1.2...Nだけ書き込む ことは可能でしょうか。
どうやら、参入のための追加条件を検討する必要があるようです。
そして、オープンポジションの数を数える。
しかし、クロスオーバーとはほとんど関係がないでしょう。
なぜなら、あるケースでは信号が1つしかなかったのに、2つ目のケースでは10個もあったかもしれないからです。
しかし、まずは追加参入の条件を見極めるべきだろう。
どうやら、さらにエントリー条件があるようです。
そして、オープンポジションの数を数える。
しかし、それはクロスオーバーとはほとんど関係がありません。
というのも、あるケースでは信号が1つしかなかったのに、別のケースでは10個もあったのです。
しかし、その前に、追加エントリーの条件を定義しておく必要があります
OK、もっと深く調べてみます。Vilinとsanyooooookに多いに感謝 します。
double Lots;
double m = 0.1;
for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}
なぜ私のLotsはいつもゼロになってしまうのですか?
double Lots;
double m = 0.1;
for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}
Почему у меня Lots всегда оказывается равен нулю?
ループが実行されているか、条件によってすぐに終了しているか?
https://docs.mql4.com/ru/basis/operators/for
式1は、ループの初期化を記述しています。Expression2は、ループの終了条件をチェックするものです。trueの場合、ループ本体forが実行される。すべて expression2 が false になるまで繰り返される。偽の場合、ループは終了し、次の演算子に制御が移る。式3は、各反復の後に計算される。
for(式1; 式2; 式3)
演算子を使用します。
こんばんは。端末の不具合があり、どうにもこうにも直せない。
MT4を起動し、テンプレートを読み込み、トレンドラインを引いた後、TFを切り替えるとラインが消えてしまい、元の時間枠にも表示されない。同時に、他のすべてのチャート(水平、垂直線、チャンネル、すべてのFiboなど)は問題なく動作します。クリーンな(「テンプレートのない」)チャートでは、レイアウトは完全に保持され、同じインデュレータでは、以前はすべてうまく機能していました。Expert AdvisorsとExpert Advisorsは無効化されました。主にチャートで仕事をしています、助けてください!!!!
こんにちは。
3分前に取引を終了しないEAを作るにはどうしたらいいですか?
どこに何を処方すればいいのか、どなたかアドバイスをお願いします。
まずはロジックから始めなければなりません。何を、どう手に入れたいのか。
まあ、その理屈はコメントで説明されていると思いますが...。
返品を取り出したら、こんな感じでした。
動作しているようですが、コードが正しいかどうかわかりません...。間違っているところがあれば、どなたか訂正してください。