назад Оглавление вперед


[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [ 104 ] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145]


104

4. Если условия пересечения выполнились, то позиции открытые ранее по данному инструменту необходимо закрыть:

If IsCrossDown Or WasclosedBuy=True Then Begin For cnt=l To TotalTrades Begin

Проверка наличия открытых позиций, которые необходимо закрыть:

, If OrderValue(cntVAL SYMBOL)=Syrabol And

OrderValue(cnt,VAL TYPE)=OP BUY Then Begin P- CloseOrder (Ordervalue (cnt, VAL TICKET) ,

OrderValue(cnt,VAL LOTS), Ask,, 3, Violet);

работа ещё не закончена - после закрытия длинных позиций нужно будет ещё открыть короткую позицию:

WasClosedBuy-True; - j:. - (\

можно выполнить только одну операцию, поэтому выходим: Exit;

End;

все длинные позиции закрыты:

но необходимо для надёжности выдержать 30 секунд. Это обусловлено тем, что советник запускается со следующей пришедшей в информационный терминал MetaTrader цеиы, а закрытие/открытие позиций совершается по получению цены от принципала. Таким образом, может сложиться ситуация, когда для советника придет следующая цена, а для совершения сделки цена от принципала еще не придет. Советник воспримет приход цены как Открытие/закрытие позиции, которого в реальности еще не произошло;

У. If CurTime-LastTradeTime < 30 Then Begin Щ

print («Wait up to 30 seconds please»} ; jVjl

5. Могло не быть ни одной позиции, предназначенной для закрытия, поэтому переменной WasClosedBuy установим True для того, чтобы при следующем запуске у советника была информация о том, что ему необходимо открыть новую позицию



WasClosedBuy=True; Exit;

End;

Wa5ClosedBuy=Faise;

If IsCrossDown Then Begin можно открываться в друг>-ю сторону SetOrder(OP SELL,1,Bid,3,0,О, RED); Exit;

End;

End;

If IsCrossUp or WasClosedSell=True Then Begin

оставшиеся короткие позиции по этому же инструменту нужно закрыть:

For cnt=l то 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;

End;

End;

все короткие позиции закрыты

If CurTime-LastTradeTime < 30 Then Begin print(«Wait up to 30 seconds piease»); WasClosedSell=True; Exit;

End;

WasClosedSell-False;

можно открываться в другую сторону:

If IsCrossUp Then SetOrder(OP BUY,Lots.Ask,3,0,0,Green); End;

Еще раз про задержку в 30 сек. в п. 4 и 5. Для тестирования, строго говоря, задержка вообще не нужна, поскольку начало работы советника и открытие/ закрьЕтие позиции происходят по одной и той же цене, пришедшей в информационный терминал. При реальной торговле, когда советник начинает работу по цене пришедшей в информационный терминал, а открь[тие/закры-тие позиций происходит по цене принципала - что не одно и то же,- длительность задержки необходимо подгонять под особенности принципала. Например, при работе принципала в режиме instant execution задержка в 30 сек вполне достаточна.



pert Advisor

Sewings I Slrategy Teste j Report ГЕфНУР?).1

31300

2Э567

......~*

19633 1S71I

AT* . -

• •4-i.....

* " >

- •-

117Э4

78S6 1 ЗЭ28

loooo":"

...v.- .

• Ч » *

.. .\ . ..... . J. .

- • . • • • .

2* Б6 B4 Lll m !«. W4 7?l J4S W6 364 331 S- 3S7 414 44? SS

J Cancel I

Рис. 85. График изменения доходности при использораини метода Пересечение МЛ и ходе letioDoii торгопли. Тестирпвапие проподилос!» на временном интерпалс липлрь 2()((3 - !П1парь20(И i-. Решения об открытии низицнн при1имал1с1. иа осисриеапа.)1иза предыдущего 6<ipa на часоиых графиках.

[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [ 104 ] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145]