inputint StopLoss =499; // Stop Lossinputint TakeProfit =999; // Take Profitinputint EA_Magic =12345; // Magic Number советникаinputdouble Lot =0.1; // Количество лотов для торговли//---MqlTick latest_price; // Будет использоваться для текущих котировокMqlTradeRequest mrequest; // Будет использоваться для отсылки торговых запросовMqlTradeResult mresult; // Будет использоваться для получения результатов выполнения торговых запросов//---int STP = StopLoss;
int TKP = TakeProfit;
//+------------------------------------------------------------------+//| ИНИЦИАЛИЗАЦИЯ |//+------------------------------------------------------------------+intOnInit()
{
//--- Для работы с брокерами, использующими 5-ти значные котировки,// умножаем на 10 значения SL и TP
STP = StopLoss;
TKP = TakeProfit;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
return(0);
}
//+------------------------------------------------------------------+//| ДЕИНИЦИАЛИЗАЦИЯ |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| СОБЫТИЕ ТИК ТЕКУЩЕГО СИМВОЛА |//+------------------------------------------------------------------+voidOnTick()
{
SymbolInfoTick(Symbol(),latest_price); // Получаем текущие цены//---
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);
}
//---
もし、その問題が実行モードにあることがわかったら、おおよそそうする必要があります。
// В режиме Instant Execution позицию можно открыть// сразу с установленными уровнями Stop Loss и Take Profitif(smb.trade_exec==SYMBOL_TRADE_EXECUTION_INSTANT)
{
// Если позиция не открылась, вывести сообщение об этомif(!trd.PositionOpen(_Symbol,type_ord,lot,oprice,sl,tp,comment))
{ Print("Ошибка при открытии позиции: ",GetLastError()," - ",ErrorDesc(GetLastError())); }
}
//---// В режиме Market Execution сначала нужно открыть позицию и// только после этого можно установить уровни Stop Loss и Take Profitif(smb.trade_exec==SYMBOL_TRADE_EXECUTION_MARKET)
{
// Если позиции нет, то сначала откроем позицию// а затем установим Stop Loss и Take Profitif(!pos.exist)
{
// Если позиция не открылась, вывести сообщение об этомif(!trd.PositionOpen(_Symbol,type_ord,lot,oprice,0,0,comment))
{ Print("Ошибка при открытии позиции: ",GetLastError()," - ",ErrorDesc(GetLastError())); }
else
{// Если позиция открылась, то сначала выберем её и...if((pos.exist=PositionSelect(_Symbol))) // ...если позиция есть, то...
{
// ...установим Stop Loss и Take Profitif(!trd.PositionModify(_Symbol,sl,tp))
{ Print("Ошибка при модификации позиции: ",GetLastError()," - ",ErrorDesc(GetLastError())); }
}
}
}
else
{// Если позиция есть, то увеличим её объём и// оставим Stop Loss и Take Profit на их прежнем уровне// Если позиция не открылась, вывести сообщение об этомif(!trd.PositionOpen(_Symbol,type_ord,lot,oprice,sl,tp,comment))
{ Print("Ошибка при открытии позиции: ",GetLastError()," - ",ErrorDesc(GetLastError())); }
}
}
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
Первое, что следует отметить и принять как должное, это отсутствие локов - встречных позиций. Пожалуй, это основное, что вызывает у части трейдеров недоумение и, возможно, разочарование, в то время как для тех, кто торгует без локов, это изменение вполне закономерно и логично. Если мы обратимся к другим профессиональным платформам, то увидим...
ZeroMemory(mrequest)でゼロにしました。
注文執行 モード、アルパリブローカー、私はすべてが標準だと思う、本当に理解していない。くっそー、効かない!やりたくないんだよ注文のslとtpを見たら、現在値+slと表示された。 何が普通なのかわからない!?
でも、このフォームでサーバーのMQのエラーがテスターで発生しません。
//---
もし、その問題が実行モードにあることがわかったら、おおよそそうする必要があります。
MQL5で短く書くには?
MT5で経済カレンダーは どこにあるか教えてください。私のところでは見当たりません(1分から5分おきにきっちりノンストップで来るニュースがあり、全部違う)。
ありがとうございます。
http://www.profi-forex.org/journal/number17/page8.html#prettyPhoto
MT5で経済カレンダーはどこにあるか教えてください。私のところでは見当たりません(1分から5分おきにきっちりノンストップで来るニュースがあり、全部違う)。
ありがとうございます。
http://www.profi-forex.org/journal/number17/page8.html#prettyPhoto
入ってくるニュースはメールタブ です。
カレンダーもあります。
本物のmt5アカウントに接続した場合のみ見ることができます
mzk_3om6u:
MT5で経済カレンダーはどこにあるか教えてください。私のところでは見当たりません(1分から5分おきにきっちりノンストップで来るニュースがあり、全部違う)。
ありがとうございます。
ターミナルヘルプ(F1)から。
トレードサーバーで経済カレンダーが無効になっている場合、このタブが表示されないことがあります。
>> カレンダー
MT5の経済カレンダーはどこにあるか教えてください...。
それに応じて、特定のブローカーがカレンダーを提供しない場合があります。このように思えるのです。
こんにちは。
スケジュール変更に関連した質問はどこにすればよいですか?
この例.すでに何度か会社によるマニュアル管理のスケジュールを確認したことがあるが、よく確認される。
この質問に対するリンクを書いてください! ありがとうございました。
こんにちは。
スケジュール変更に関連した質問はどこにすればよいですか?
この例.すでに何度か会社によるマニュアル管理のスケジュールを確認したことがあるが、よく確認される。
この質問に対するリンクを送ってください。
解読してください。どういうことですか?履歴、トレード、チャート...?
そもそも、どんな場合でも、会社の技術サポートに。証拠(スクリーンショット、ログ)を添えて。
ごあいさつ
ローソク足チャートのデータをExcelファイルに転送するスクリプトを書くことは原理的に可能かどうか教えてください。