double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // лучшее предложение на покупкуdouble Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // лучшее предложение на продажуdouble SL = NormalizeDouble(StopLoss,_Digits);
double TP = NormalizeDouble(TakeProfit,_Digits);
bool Buy_Condition_1=...;
bool Buy_Condition_2=...;
bool Buy_Condition_3=...;
а сам
bool PositionModify(conststring_Symbol,constdouble SL,constdouble TP)
{
if(PositionSelect(_Symbol)==true) // есть открытая позиция
{
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
Alert("SL!!!");
return; // закрыл
}
MqlTradeRequest request={0};
MqlTradeResult result ={0};
mrequest.action=TRADE_ACTION_SLTP;
mrequest.symbol=_Symbol;
mrequest.magic =EA_Magic;
mrequest.sl =StopLoss;
mrequest.tp =TakeProfit;
OrderSend(mrequest,mresult);
if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
{
Alert("Стопка прошла#:",mresult.order,"!!");
}
else
{
Alert("Стопка не прошла - код ошибки:",GetLastError());
return(false);
}
return(true);
}
//----------------------------------------------------------------- if(Buy_Close_1 || Buy_Close_2)
после отсылки ордера на покупку.
Пока при компиляции борюсь с "лишними" скобками фигурными.
Вопрос дубль 2 - правильно ли я расположил модификацию позиции?
И вообще, "классический" ли он имеет код (при условии, что он верный)?
Стоплос и тейкпрофит в пункти.*Понт = 0.002-ето тейк,ну надо и к добавит.
PositionModify(Symbol(),NormalizeDouble(Bid - SL*_Point,4),TP*_Point);
PositionModify(Symbol(),NormalizeDouble((Bid - SL*_Point),4),NormalizeDouble((Bid + TP*_Point),4));
位置の修正は どこに書いてあるのですか?
ストップロスとテイクプロフィットの詳細は、売買条件の前に書かれています。
コードにエラーがあります。
ありがとうございます。もうないんです。
ポジショニングについてはいかがでしょうか。
つまり、中括弧をつけると、コンパイル時に - 'PositionModify' -関数は グローバルスコープでのみ宣言できる、と生成されます。
今回、私はそれを信じています。つまり、「position modifier」自体は 、int OnInit()の前に置き 、条件(if)は、購入部の後に置くべきでしょうか ?
コードを教えてください、意味がわかりません。
追記:PositionModify()関数は、グローバルレベル、つまり関数が あるレベルで記述する必要があります。OnInit()、OnTick()、OnDeinit()。
修正しました。エラーなくコンパイルされます。テスターでテストしていない。あなたのコードは読めませんでした。私の修正版のようなコードレイアウトに慣れて ください。
ありがとうございます(レイアウト以外に何が変わったのかよく分かりませんが)。
2行目の "SMB "は何を意味し、どこで値が定義されているのか、_Symbolとは書けないのか?
mrequest.action = TRADE_ACTION_SLTP; mrequest.symbol = smb; mrequest.magic = EA_Magic; mrequest.sl = SL; mrequest.tp = TP;
こんにちは、端末のコンピュータの電源を切っている場合、シグナルの注文は実行されるかどうか教えてください。
こんにちは。
エキスパートが起動し、初期化されると、テキストボックスとボタンが描画されます。 エキスパートはティックを処理します。を入力した場合 テキストボックスに何らかの値を入力してボタンを押すと、ティックハンドラーに新しいデータが表示されます。
つまり、WindowsのGUI要素を介してExpert Advisorとユーザーデータをインタラクティブにやり取りするための正しい(よりシンプルで優れた)方法とは何でしょうか?CChartObjectEditとCChartObjectButtonは、失礼ながら、ある種の「ポルノ」です。
ありがとうございます。質問が単純で、答えがどこにあるのか突いてみてください!だったらごめんなさい。
かっこいい。
1.コードがコンパイルされるようになった。 最初の変化
コンパイルと操作性は別物なのが残念)
なぜテスターではストップロスやプロフィットを設定するのに、チャート上では設定しないのですか?
だんだん怖くなってきた)))
なぜテスターではストップロスやプロフィットを設定するのに、チャート上では設定しないのですか?
途中からパニックになり始めた ))))。
Lester:Zdesはテンプレートを置いて、その中に修正を加えて、polzuvatsyaの方法を示しました。
https://www.mql5.com/ru/forum/6343/page73
やりたくないなら、変数を正しく読み取るしかないでしょう。
こんにちは、端末のコンピュータの電源を切っている場合、シグナルの注文は実行されるかどうか教えてください。