из эксперта нельзя одновременно открывать и закрывать несколько позиций
за один раз Вы можете произвести только одну торговую операцию. читайте на нашем сайте про Expert Advisors
за один раз Вы можете произвести только одну торговую операцию. читайте на нашем сайте про Expert Advisors
вот пример, как закрыть все позиции и открыться в противоположную сторону
/*[[
Name := MA20 cross
Author := Copyright © 2003, Metaquotes Software Corp
Link := https://www.metaquotes.net/
Lots := 1.00
Stop Loss := 0
Take Profit := 0
Trailing Stop := 0
]]*/
Variables: PrevTime(0);
Variables: MaCurrent(0),MaPrevious(0);
Variables: cnt(0),WasClosedSell(False),WasClosedBuy(False);
If PrevTime=Time And WasClosedSell=False And WasClosedBuy=False Then exit;
PrevTime=Time;
MaCurrent=iMA(20,MODE_SMA,1);
MaPrevious=iMA(20,MODE_SMA,2);
If (Close[2]>MaPrevious And Close[1]<MaCurrent And WasClosedSell=False) Or WasClosedBuy=True Then Begin
If Close[2]>MaPrevious And Close[1]<MaCurrent then print(TimeToStr(Time)," - Close crosses down MA20")
Else print(TimeToStr(Time)," - Some buy trades is to be closed");
if CurTime-LastTradeTime < 30 then Begin
print("Wait up to 30 seconds please");
Exit;
End;
For cnt=1 to TotalTrades Begin
If OrderValue(cnt,VAL_SYMBOL)=Symbol And
OrderValue(cnt,VAL_TYPE)==OP_BUY Then Begin
CloseOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_LOTS),Ask,3,Violet);
WasClosedBuy=True;
Exit; // close only 1 order at same time! and exit
End;
End;
WasClosedBuy=False;
If Close[2]>MaPrevious And Close[1]<MaCurrent then Begin
SetOrder(OP_SELL,1,Bid,3,0,0,RED);
Exit;
End;
End;
If (Close[2]<MaPrevious And Close[1]>MaCurrent) Or WasClosedSell=True Then Begin
If (Close[2]<MaPrevious And Close[1]>MaCurrent) then print(TimeToStr(Time)," - Close crosses up MA20")
Else print(TimeToStr(Time)," - Some sell trades is to be closed");
if CurTime-LastTradeTime < 30 then Begin
print("Wait up to 30 seconds please");
Exit;
End;
For cnt=1 to TotalTrades Begin
If OrderValue(cnt,VAL_SYMBOL)=Symbol And
OrderValue(cnt,VAL_TYPE)==OP_SELL Then Begin
CloseOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_LOTS),Bid,3,Violet);
WasClosedSell=True;
Exit; // close only 1 order at same time! and exit
End;
End;
WasClosedSell=False;
// open position at next time
If (Close[2]<MaPrevious And Close[1]>MaCurrent) then SetOrder(OP_BUY,Lots,Ask,3,0,0,GREEN);
End;
почему не работает
почему этот эксперт не работает на демосчете на одноминутном графике
почему этот эксперт не работает на демосчете на одноминутном графике

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Народ!!!! помогите, я чесно продолбался над эьтим целый день, но чото не получается, видно ручки немного кривоваты.
Хочется при одном условии открывать позицию, при другом накидывать еще( сколько раз 2ое условие сработает, столько и накинется), а при 3ем условии закрыть все позиции и открытся в другую сторону.
Доумничал я до того, чтооно у меня закрывает несколькао позиций, и начинает открывать в другую сторону, но держит открытыми в противоположную.
Всем спасибо!!!!!