//+------------------------------------------------------------------+//| Check for long position opening |//+------------------------------------------------------------------+bool CSampleExpert::LongOpened(void)
{
bool res=false;
//--- check for long position (BUY) possibility
{
double price=m_symbol.Ask();
double tp =m_symbol.Bid()+m_take_profit;
//--- check for free moneyif(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,InpLots,price)<0.0)
printf("We have no money. Free Margin = %f",m_account.FreeMargin());
else
{
//--- open positionif(m_trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,InpLots,price,0.0,tp))
printf("Position by %s to be opened",Symbol());
else
{
printf("Error opening BUY position by %s : '%s'",Symbol(),m_trade.ResultComment());
printf("Open parameters : price=%f,TP=%f",price,tp);
}
}
//--- in any case we must exit from expert
res=true;
}
//--- resultreturn(res);
}
//+------------------------------------------------------------------+//| Check for short position opening |//+------------------------------------------------------------------+bool CSampleExpert::ShortOpened(void)
{
bool res=false;
//--- check for short position (SELL) possibility
{
double price=m_symbol.Bid();
double tp =m_symbol.Ask()-m_take_profit;
//--- check for free moneyif(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,InpLots,price)<0.0)
printf("We have no money. Free Margin = %f",m_account.FreeMargin());
else
{
//--- open positionif(m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,price,0.0,tp))
printf("Position by %s to be opened",Symbol());
else
{
printf("Error opening SELL position by %s : '%s'",Symbol(),m_trade.ResultComment());
printf("Open parameters : price=%f,TP=%f",price,tp);
}
}
//--- in any case we must exit from expert
res=true;
}
//--- resultreturn(res);
}
//+------------------------------------------------------------------+
Свойства ордеров - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
119行目は if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited") TypeFilling =ORDER_FILLING_FOK.FOK とすること。
119行目は if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited") TypeFilling =ORDER_FILLING_FOK.FOK とすること。
おはようございます。
テスターがポジションをオープンしたくない場合、エラーが発生します。
err_trade_send_failed
4756
取引要求の送信に失敗しました
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ここで修正すべきことがあると思います
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
では、この関数を次の関数に置き換えてみます。
おはようございます。
テスターがポジションをオープンしようとせず、エラーになる
err_trade_send_failed
4756
取引要求の送信に失敗しました
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ここは何か修正する必要があると思います。
はい。それは彼らのためにあなたのディーラー-Forexclubです注文タイプ FilingFock。犬と散歩がてら直します。forexclubに他に人がいるとは思わなかった...。
はい。それは、彼らがFilingFoc注文タイプを持って いるためにあなたのディーラー- Forexclubです。犬と散歩がてら直します。forexclubに他に人がいるとは思わなかった...。
充填モードは、FX業者の名前からではなく、ルールで設定する必要があります。
追加されました。
CTradeのトレードクラスで例を見ることができます。
マージンモード設定
現在の口座設定に応じた証拠金計算のモードを設定する
SetTypeFillingBySymbol(タイプフィリングバイシンボル)。
指定されたシンボルの設定にしたがって、注文タイプを設定する
はい。それは、彼らがFilingFoc注文タイプを持って いるためにあなたのディーラー- Forexclubです。犬と散歩がてら直します。forexclubに他に人がいるとは思わなかった...。
気がつかなかった - 確かにあなたはまだここにブローカーを持っている
効いてますね。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
スワップされた -----------。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
今のところ問題なく動作しているようです。
効いてますね。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
スワップされた -----------。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
今のところ問題なく動作しているようです。
アルゴリズムで事前にテストしているので、結果は同じなのでしょうか?
まだ1分間テスト中なんですが......パソコンが弱いので、テストが遅いんです。
一見良さそうに見えますが、最終的にどのような仕上がりになるのか、見てみましょう。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
エキスパートテスターでエラーなし
おはようございます。
テスターがポジションをオープンしたくない場合、エラーが発生します。
err_trade_send_failed
4756
取引要求の送信に失敗しました
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ここで修正すべきことがあると思います
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
この機能に置き換えてみる。
その必要はありません。
119行目は if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited") TypeFilling =ORDER_FILLING_FOK.FOK とすること。
であり、AUTOOrderSELLについても同様である。以上です。:)
必要ない。
119行目は if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited") TypeFilling =ORDER_FILLING_FOK.FOK とすること。
であり、AUTOOrderSELLについても同様である。以上です。:)
とりあえずこのままにしておきます。テスト終了後に修正します
- テスターを止めたくない
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ただ一つ悪いのは、今テストが行われていて、ここでやりすぎているような気がします。
フィルモードは、FX業者の名前からではなく、ルールで設定する必要があります。
追加されました。
CTradeのトレードクラスで例を見ることができます。
マージンモード設定
現在の口座設定に応じた証拠金計算のモードを設定する
SetTypeFillingBySymbol(タイプフィリングバイシンボル)。
指定されたシンボルの設定にしたがって、注文タイプを設定する
ありがとうございました。そのため、このパッチでは、ブローカーに対して、どのモードを使うべきかを簡単に説明しました :)まだ2人です。リメイクありがとうございます。