//--- get transaction type as enumeration valueENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in historyif(type==TRADE_TRANSACTION_DEAL_ADD)
{
long deal_entry =0;
double deal_profit =0.0;
double deal_volume =0.0;
string deal_symbol ="";
long deal_magic =0;
long deal_reason =-1;
if(HistoryDealSelect(trans.deal))
{
deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
deal_profit=HistoryDealGetDouble(trans.deal,DEAL_PROFIT);
deal_volume=HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);
deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON);
}
elsereturn;
if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
if(deal_entry==DEAL_ENTRY_OUT)
{
if(deal_reason==DEAL_REASON_SL)
SendNotification (" Закрыл позицию > StopLoss");
if(deal_reason==DEAL_REASON_TP)
SendNotification ("Закрыл позицию > TakeProfit");
}
}
}
など、新たな売買を
void OPENORDER(string ord)
{
double priceL=m_symbol.Ask();
if(ord=="Sell")
SendNotification (" открыл позицию > short");//--- check for free moneyif(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,my_lot,priceL)<0.0)
printf("We have no money. Free Margin = %f",m_account.FreeMargin());
elseif(!m_trade.Sell(my_lot,Symbol(),m_symbol.Bid(),my_SL,my_TP,""))
Print("BUY_STOP -> false. Result Retcode: ",m_trade.ResultRetcode(),
", description of Retcode: ",m_trade.ResultRetcodeDescription(),
", ticket of order: ",m_trade.ResultOrder()); // Если sell, то не открываемсяdouble priceS=m_symbol.Bid();
if(ord=="Buy")
SendNotification (" открыл позицию > long");//--- check for free moneyif(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,my_lot,priceS)<0.0)
printf("We have no money. Free Margin = %f",m_account.FreeMargin());
elseif(!m_trade.Buy(my_lot,Symbol(),m_symbol.Ask(),my_SL,my_TP,""))
Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription(),
", ticket of deal: ",m_trade.ResultDeal());
強調表示...<0の場合、負けトレードのロットを増やします。
もし >0 ならば、利益取引のロットが増加します。
こんにちは。
EAについてもう一つ質問があります。
デモ口座でテストしたところ、以下のような現象が発生しました。
EAが指定されたパラメーターに達すると、「ストップ」モードに移行しています。つまり、「スタート」ボタンが点灯していますが、取引は停止しておらず、取引は文字通り1セントか2セントの非常に短いものになります。これがあるべき姿なのか?
また、EAがいくつかの取引を、テイクまたはストップ価格でもマネーリミットでもなく、「何もせずに」クローズし、クローズする前に価格が様々なポイントを通過していることがわかりました。同時に、Expert Advisorは完全に数セント(例えば、行の3つの取引が(-15.59ドル)有益な取引= 15.62ドルを持っているとすぐにそれを閉じて!)、以前の損失をカバーすることができます。
ログを見たが、どこにもエラーはない。
こんにちは。
Expert Advisorについて、もう一つ質問があります。
をデモで試したところ、次のような現象が発生しました。
EAがあらかじめ設定されたパラメーターに達すると、「ストップ」モードに切り替わります。つまり、「スタート」ボタンが点灯しますが、取引は停止せず、1~2セント程度の非常に短い取引が開始されます。これがあるべき姿なのか?
また、EAがいくつかの取引を、テイクまたはストップ価格でもマネーリミットでもなく、「何もせずに」クローズし、クローズする前に価格が様々なポイントを通過していることがわかりました。同時に、Expert Advisorは完全にセントのカップルで、以前の損失をカバーし、(例えば、行の3つの取引が(-15.59ドル)有益な取引= +15.62 $とすぐにそれを閉じた!)持っています。
ログを見たが、どこにもエラーはない。
修正したコードをお送りください。見ていきます。
修正を加えてコードを投稿してください。様子を見よう。
だから私はまだ修正されていないもの、あなたのネイティブのものをテストしています。
ということで、まだ未補正のものをテストしています、あなたのネイティブのものを。
エラーは出ていないのですが...。
どの時期に、どのペアで、どのようなパラメータがあったときにエラーが発生したかを書いてください。
エラーは出ていないのですが...。
どの期間、どの組で、どのようなパラメータがあったときにエラーが発生したかを書きます。
を設定します。
timeframe_RSI=0 period_RSI=14 level_buy=30 level_sell=70 Lot=0.01 K_Martin=1.6 Stoploss=200 Takeprofit=1000 CountLoss=100.0 CountProfit=25.0 Magic=777 DigitsLot=2 スリッページ=3
報告書を以下に添付します。
黄色い線は、ストップでもテイクでもマネーでもなく、「不明確」なまま閉じられます。
とブルー - ほぼ即座に開閉されたトレード
こんにちは。
このシンプルなEAに、どの機能をどこに追加すればいいのか、アドバイスをお願いします。
既存の方法に加え、初期にたくさんリセットすることができます。
入金通貨で指定したドローダウンに達した時点で現在のポジションを決済し、次のポジションを建てるときに、ロットを開始時のものにリセットしたい場合、どうすればよいのでしょうか。
以下はその設定です。
timeframe_RSI=0 period_RSI=14 level_buy=30 level_sell=70 Lot=0.01 K_Martin=1.6 Stoploss=200 Takeprofit=1000 CountLoss=100.0 CountProfit=25.0 Magic=777 DigitsLot=2 スリッページ=3
報告書を以下に添付します。
ストップもテイクプロフィットもマネーもない「不明確な」終値の黄色い線が あります。
そして、青い線は、ほぼ即座にオープンし、クローズした案件を表しています。
どのようなタイムフレームで?
など、新たな売買を
ごあいさつmt5についてアドバイスをお願いします。
インジケータを使ったEAを作りたいのですが、インジケータがなくてもEAが 動くようにしたいのですが、インジケータに刻まれたデータをチャート上に表示し、これらの線がオブジェクトにならない ようにすることは可能ですか?
ごあいさつmt5についてアドバイスをお願いします。
インジケータを使ったEAを作りたいのですが、インジケータがなくてもEAが 動くようにしたいのですが、インジケータに書かれているデータをチャート上に表示して、この線をオブジェクトとして作らない ようにすることは可能でしょうか?
ChartIndicatorAdd()