初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 493

 
INGFX:

ウラジミールさん、お待たせしました。
本当にコードに間違いがあったのか.
これからはもっと気をつけます。

イエーイ!安心して眠れるようになりました。
 

こんにちは。

解決策をご教示ください。SendFTP()で ファイルを送信しようとすると、「4014エラー - システム関数の呼び出しが許可されていません」というエラーが発生します。

FTPの設定はOKです。レポートとテストファイルが送信されます。

よろしくお願いします。

 
Nikita Solodko:

こんにちは。

解決策をご教示ください。SendFTP()で ファイルを送信しようとすると、「4014エラー - システム関数の呼び出しが許可されていません」というエラーが発生します。

FTPの設定はOKです。レポートとテストファイルが送信されます。

よろしくお願いします。

ひょっとして、インジケーターから送信しようとしているのでしょうか?
 
Karputov Vladimir:
ひょっとして、インジケーターから送信しようとしていませんか?
うっかりすると、そうですね...。なぜできないの?
 
Nikita Solodko:
偶然にもそうなんです...。なぜできないの?
ftpネットワークの遅延の場合、インジケータが端末全体の速度を低下させる可能性があるため、できません。でも、EAからならできますよ。
 
Karputov Vladimir:
ftpネットワークに遅延が発生した場合、インジケータが端末全体を遅くする可能性があるため不可。でも、EAからは歓迎されますよ。
ありがとうございます。
 

皆さん、こんにちは。初めてEAを書くのですが、勝てない問題に直面しています。

void OnTick()
{
 datetime EaStartTime = StringToTime(StartTime);  // время начала работы советника
 datetime EaEndTime = StringToTime(EndTime);      // время окончания работы советника
 datetime CurrTime = TimeCurrent();               // это если нужно взять время терминала
 if (CurrTime < EaStartTime || CurrTime >= EaEndTime)
  return;                                         // если еще не время торговать - выход
{
 PriceLow=iEnvelopes(NULL,0,MA_Period,MA_Shift,MA_Method,Applied_Price,Deviation,0,1);
 PriceHigh =iEnvelopes(NULL,0,MA_Period,MA_Shift,MA_Method,Applied_Price,Deviation,1,1);
 MacdCurrent=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0);
 SignalCurrent=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_SIGNAL,0);
 SignalMAPrevious=iMA(NULL,0,InpMAPeriod,InpMAShift,InpMAMethod,PRICE_MEDIAN,1);
 SignalMAThis=iMA(NULL,0,InpMAPeriod,InpMAShift,InpMAMethod,PRICE_MEDIAN,0);
 PriceCurrentOpen=iOpen(NULL,0,1);
 PriceCurrentClose=iClose(NULL,0,1);
  if (CountTrades()==0) CheckForOpen();
   else
  {
   if(CountTrades()<max_trades) CheckForOpen();
  }
 }
}  
void CheckForOpen()
{
//-----Ставим ордер на покупку.
 if(PriceCurrentOpen<PriceLow&&PriceCurrentOpen<PriceCurrentClose&&SignalCurrent<MacdCurrent&&SignalMAPrevious<SignalMAThis)
 {
  ticket=OrderSend(NULL,OP_BUY,Lots,Ask,slippage,0,0,"5",magic,0,Blue);
   if(ticket>0)
    return; 
 }
//-----Ставим ордер на продажу.
 if(PriceCurrentOpen>PriceLow&&PriceCurrentOpen>PriceCurrentClose&&SignalCurrent>MacdCurrent&&SignalMAPrevious>SignalMAThis)
 {
  ticket=OrderSend(NULL,OP_SELL,Lots,Bid,slippage,0,0,"5",magic,0,Red);
   if(ticket>0)
    return; 
 }
}

私のEAは、前のバーがチャネル"エンベロープ " の外に開かれた場合は、売買シグナルを与えるべきであるそれが下にあった場合、それがチャネルよりも上にあった場合は、販売、購入が、実際にはそれは常にそれがように感じるとき、それは他のすべての条件はOKですが、チャネル内に長く行くと突然買い注文を開始するかもしれません、売り信号は、販売して購入すると、購入した場合

どのように彼はバーごとに1つの注文ではなく、すべての一度に注文の数を 許可された毎秒を購入するようにするには?

 
Nickolay72:

皆さん、こんにちは。初めてEAを書くのですが、勝てない問題に直面しています。

私のEAは、前のバーがチャネル"エンベロープ " の外に開かれた場合は、売買シグナルを与えるべきであるそれが下にあった場合、それは買い、チャネルよりも上にあった場合は、販売しますが、実際にはそれは常にそれが感じるときに、それは他のすべての条件はOKですが、チャネル内に長く行くかもしれないと突然買い注文を開始、売り-売り信号、購入。

どのように彼はバーごとに1つの注文ではなく、すべての一度に注文の数を 許可された毎秒を購入するようにするには?

ごきげんよう。注文を出す前に、すでにオープンポジションがあるかどうかを確認し、ある場合はオープン注文を出さず、そうでない場合は注文を出します。私があなたのコードを理解する限り、この関数CountTrades()はそれを処理する。そこで、この関数が返す値を確認します。
 
昨日まで1つの注文が開かれ、次の注文が開かれるまで開かないのですが、私のEAでは、前のバーがチャネルより上(下)のときに注文を開かせるにはどうしたらよいでしょうか?
ファイル:
Zmey.mq4  5 kb
 
Nickolay72:
昨日までは1件ずつ注文があり、注文がある間は次の注文が開かない。前のバーがチャネルより上(下)に開いたときに、EAが注文に従って注文を開くようにするにはどうすればよいですか?今、ほとんどの注文は条件通りに開かれず、負けています。
Open Bar 1がチャンネルより高い/低い場合。
理由: