voidOnTick()
{
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;
}
}
ウラジミールさん、お待たせしました。
本当にコードに間違いがあったのか.
これからはもっと気をつけます。
こんにちは。
解決策をご教示ください。SendFTP()で ファイルを送信しようとすると、「4014エラー - システム関数の呼び出しが許可されていません」というエラーが発生します。
FTPの設定はOKです。レポートとテストファイルが送信されます。
よろしくお願いします。
こんにちは。
解決策をご教示ください。SendFTP()で ファイルを送信しようとすると、「4014エラー - システム関数の呼び出しが許可されていません」というエラーが発生します。
FTPの設定はOKです。レポートとテストファイルが送信されます。
よろしくお願いします。
ひょっとして、インジケーターから送信しようとしていませんか?
偶然にもそうなんです...。なぜできないの?
ftpネットワークに遅延が発生した場合、インジケータが端末全体を遅くする可能性があるため不可。でも、EAからは歓迎されますよ。
皆さん、こんにちは。初めてEAを書くのですが、勝てない問題に直面しています。
私のEAは、前のバーがチャネル"エンベロープ " の外に開かれた場合は、売買シグナルを与えるべきである、それが下にあった場合、それがチャネルよりも上にあった場合は、販売、購入が、実際にはそれは常にそれがように感じるとき、それは他のすべての条件はOKですが、チャネル内に長く行くと突然買い注文を開始するかもしれません、売り信号は、販売して購入すると、購入した場合。
どのように彼はバーごとに1つの注文ではなく、すべての一度に注文の数を 許可された毎秒を購入するようにするには?
皆さん、こんにちは。初めてEAを書くのですが、勝てない問題に直面しています。
私のEAは、前のバーがチャネル"エンベロープ " の外に開かれた場合は、売買シグナルを与えるべきである、それが下にあった場合、それは買い、チャネルよりも上にあった場合は、販売しますが、実際にはそれは常にそれが感じるときに、それは他のすべての条件はOKですが、チャネル内に長く行くかもしれないと突然買い注文を開始、売り-売り信号、購入。
どのように彼はバーごとに1つの注文ではなく、すべての一度に注文の数を 許可された毎秒を購入するようにするには?
昨日までは1件ずつ注文があり、注文がある間は次の注文が開かない。前のバーがチャネルより上(下)に開いたときに、EAが注文に従って注文を開くようにするにはどうすればよいですか?今、ほとんどの注文は条件通りに開かれず、負けています。