//--- тикет ордера указан только для примера, его нужно получитьulong ticket=1234556;
//--- символ также указан для примера, его нужно получитьstring symbol="EURUSD";
//--- количество знаков после запятойint digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
//--- значение пунктаdouble point=SymbolInfoDouble(symbol,SYMBOL_POINT);
//--- получим цену покупкиdouble price=SymbolInfoDouble(symbol,SYMBOL_ASK);
//--- вычислим и нормализуем уровни SL и TP//--- на самом деле они должны вычисляться в зависимости от типа ордераdouble SL=NormalizeDouble(price-1000*point,digits);
double TP=NormalizeDouble(price+1000*point,digits);
//--- зададим срок действия одни суткиdatetime expiration=TimeTradeServer()+PeriodSeconds(PERIOD_D1); //!!!//--- все готово, делаем попытку модифицировать ордер if(!trade.OrderModify(ticket,price,SL,TP,ORDER_TIME_GTC,expiration)) //!!!
{
//--- сообщим о неудачеPrint("Метод OrderModify() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
". Описание кода: ",trade.ResultRetcodeDescription());
}
else
{
Print("Метод OrderModify() выполнен успешно. Код возврата=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
皆さん、ライフタイムが設定されている場合、保留中の注文を変更する際、最後の2行に何を書けばいいのか教えてください。(例:6時間~)。
request.type_time = ORDER_TIME_SPECIFIED; // 注文は有効期限まで有効です。
request.expiration = TimeCurrent()+6*3600;// 最新のサーバー時刻 + count*hours
ライフタイムが変わらないのであれば、モディファイ時に一切何も書かなくていいのでしょうか?デフォルトでは勝手に死んでしまいます。
また、その寿命を変更する必要がある場合は?
保留中の注文を変更する
注文の価格水準を修正するための取引要求。7項目は必須項目です。
-アクション
-次
-ねだん
-スレ
-せいちょう
-タイプ_時間
-有効期限
Handbookの中で、私が入り込めない2行です。
タイプタイム
有効期限内の注文の種類。値は ENUM_ORDER_TYPE_TIMEの いずれかである。
満了
保留中の注文の 有効期限(ORDER_TIME_SPECIFIEDタイプの注文の 場合)
この2行は完全に省略することができます。
例えば、request.type_time = ORDER_TIME_DAY; この場合、注文は1日後に削除されます、と書くことができます。
other options: https://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_type_time
リクエスト 時.expiration = TimeCurrent()+6*3600;//Last known server time + number of hours*hours(最後のサーバー時間)
は、注文の有効期限を指定します。
https://www.mql5.com/ru/articles/481
初心者のためのヘルプ、お願いします。
Alpari MT5をインストールし、最適化は正常に行われています。つまり、すべてのチャートが描画され、レポートが生成されており、履歴も問題ありません。インスタと同じPCにMT5をインストールし、そこでテスト履歴をダウンロードしたところ、インスタとアルパリの両方でチャートと最適化の 結果が出なくなりました。全てマウントを解除してAlpariのみをインストールしたところ、再び最適化が行われるようになりましたが、ローカルネットワーク内の別のPCにInstaをインストールすると、再び最適化の結果が失われてしまいます。
すべてのケースで同じEA、ログは最良のresaltメッセージで溢れ、ローカルエージェントだけが使用されています。
どなたか、1台のコンピュータまたはローカルネットワーク上で2台以上のmt5を同時に使用している方、またはそのような問題に直面したことのある方はいらっしゃいますか?
この2行は全く書かれていないかもしれません。
例えば、request.type_time = ORDER_TIME_DAY; この場合、注文は1日後に削除されます、と書くことができます。
なるほど。というのが、改造するときの感想です。
request.type_time =ORDER_TIME_DAY -と 同じだと思います。
入力 int t = 24;
request.expiration = TimeCurrent()+t*3600;
なるほど。というのが、改造するときの感想です。
request.type_time =ORDER_TIME_DAY -と 同じだと思います。
入力 int t = 24;
request.expiration = TimeCurrent()+t*3600;
request.type_timeに 4つのバリアントが使用できることをリンクhttps://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_type_time で示しました。
ORDER_TIME_GTC
まで順番待ちとなります。
ORDER_TIME_DAY
注文は現在の取引日の間のみ有効です。
注文時指定
ご注文は有効期限まで有効です
注文時間指定日
注文は指定日の00:00まで有効です。その時刻が取引時間帯に当てはまらない場合は、最も近い取引時間帯が有効期限となります。
また、既製のCTrade クラス(https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade)を使用して注文を変更する際の取引要求のコードを提供するhttps://www.mql5.com/ru/articles/481 へのリンクを提供しました。
コードはこうです。
MQL5の時間に関する記事はこちら:https://www.mql5.com/ru/articles/599 .
検索を利用し、論文やドキュメントを読む。
皆さん、こんにちは。
石を投げないでください、しかし、私は何も見つけられませんでした...。
EAにポジションがない...このように書かれています。
2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 failed instant buy 1.00 EURUSD at 1.36720 sl: 1.06720 tp: 1.46720 [Invalid request] [無効なリクエスト]です。
и
2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 Alert: Request to place Buy order failed - error code:4756
それは何でしょう?
mrequest.action = TRADE_ACTION_DEAL; // 即時実行
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新のアスク価格
mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // ストップロス。
mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // テイクプロフィット
mrequest.symbol = _Symbol; // シンボル
mrequestを使用します。volume = Lot; // 取引するロット数
mrequest.magic = EA_Magic; // マジックナンバー
mrequest.type = ORDER_TYPE_BUY; // 買い注文
mrequest.type_filling = ORDER_FILLING_FOK; //注文の種類- all or nothing
mrequestを使用します。deviation=100; // 現在値からのスリッページ
//注文を送信する
OrderSend(mrequest,mresult)を実行。
アルメンさん、お願いします。コードを コードフレームに貼り付けて ください。 Ctrl+"5"。 もっといいのは、エディタでSRCボタンを押し、ボックス内に貼り付けて[ok]を押すことです。
はっきりしないんです。:(
アルメンさん、お願いします。コードを コードフレームに貼り付けて ください。 Ctrl+"5"。 もっといいのは、エディタでSRCボタンを押し、ボックス内に貼り付けて[ok]を押すことです。
はっきりしないんです。:(
みなさん、こんにちは。
石を投げないでください、しかし、私は何も見つけられませんでした...。
EAにポジションが ない...これを与える
2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 failed instant buy 1.00 EURUSD at 1.36720 sl: 1.06720 tp: 1.46720 [無効なリクエスト]です。
и
2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 Alert: 買い注文のリクエストに失敗 - エラーコード:4756
それは何でしょう?
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // последняя цена Bid
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type = ORDER_TYPE_SELL; // ордер на продажу
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=100; // проскальзывание от текущей цены
//--- отсылаем ордер
OrderSend(mrequest,mresult);
みなさん、こんにちは。
石を投げないでください、しかし、私は何も見つけられませんでした...。
EAにポジションが ない...これは...
問題は、既成のフクロウを(少し)作り直さなければならないことです。