inputint StopLoss=499; // Stop Lossinputint TakeProfit=999; // Take Profitinputint EA_Magic=12345; // Magic Number советникаinputdouble Lot=0.1; // Количество лотов для торговлиintOnInit()
{
//--- Для работы с брокерами, использующими 5-ти значные котировки,//--- умножаем на 10 значения SL и TP
STP = StopLoss;
TKP = TakeProfit;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
return(0);
}
voidOnTick()
{
//---MqlTick latest_price; // Будет использоваться для текущих котировокSymbolInfoTick(Symbol(),latest_price); // Получаем текущие ценыMqlTradeRequest mrequest; // Будет использоваться для отсылки торговых запросовMqlTradeResult mresult; // Будет использоваться для получения результатов выполнения торговых запросов
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // последняя цена ask
mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type = ORDER_TYPE_BUY; // ордер на покупку
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=100; // проскальзывание от текущей цены//--- отсылаем ордерOrderSend(mrequest,mresult);
MqlTradeRequest mrequest={0}; // Будет использоваться для отсылки торговых запросовMqlTradeResult mresult={0}; // Будет использоваться для получения результатов выполнения торговых запросов
そして、"もしも "がなければ......?
こんにちは、なぜストップ高が表示されないのか理解できません。
まず、初期化が必要である。
次に、slやtpを発注できるかどうかは、ブローカーが設定する成行注文の執行モードに依存します。このモードがいくつあるかはHandbookで調べ、どのモードがブローカーによって設定されているかを確認します。
まず、初期化が必要である。
次に、slやtpを発注できるかどうかは、ブローカーが設定する成行注文の執行モードに依存します。このようなモードがいくつあるかHandbookで調べ、どのモードがブローカーによって設定されているかを確認します。
ZeroMemory(mrequest)を介してゼロにしました。
注文の実行 モードについて、私は本当に理解していない、アルパリブローカー、私はすべてが標準だと思います。くだらない、やりたくない、それだけだ。すでにslとtpで試してみましたが、現在値+slで表示されました。
ZeroMemory(mrequest)でゼロにしました。
注文執行 モード、アルパリブローカー、私はすべてが標準だと思う、本当に理解していない。くっそー、効かない!やりたくないんだよすでにslとtpで試してみましたが、現在値+slで表示されました。
私はアルパリをフォローしているわけではありませんが、ご指摘のレベルを設定できない問題は、すべてアルパリに関係していると思います。MQのデモ口座で注文してみれば、大丈夫です。
注文実行モードについて。https://www.mql5.com/ru/docs/trading/ordersend 機能を使用しています。ガイドのこのセクションをよくお読みください: https://www.mql5.com/ru/docs/constants/structures/mqltraderequest そして、「成行注文にはいくつの執行モードがありますか」という質問にご自身で答えてください。この質問に答えられない場合は、ご質問ください。
開発者は、市場執行モードと取引所執行モードで sl と tp レベルを設定できないことについて、ログメッセージに反映させる可能性をまだ提供していません。そして、その必要性もない。プログラマはブローカが設定したモードを判断する必要があります。