Potrzebuję pomocy, chciałbym zamknąć zamówienie przy zamknięciu tego samego paska otwartej pozycji.
Jest na to sposób?
Dzięki.
Lubo
Potrzebuję pomocy, chciałbym zamknąć zamówienie przy zamknięciu tego samego paska otwartej pozycji.
Jest na to sposób?
Dzięki.
Lubo
Spróbuj to zrobić na następnym otwartym pasku, na przykład, otworzyłeś pozycję, gdy świeca zapaliła się lub kiedy się rozwijasz, i chcesz zamknąć się na tym samym pasku lub na otwartym nowym. Użyj tej części kodu (mam nadzieję, że zmienne, ich wartość initalize i reset, które możesz rozwiązać) To jest dla wykresów 1h, dziennik ma podobną logikę, jeśli (pos_open == true Hour () == OpenHour 1) {OrderZamknij (ticket, ...., ...., ...., .... blah blah)} Bool var pos_open możesz zarządzać przez OrderSelect i OrderCloseTime == 0, true, else false The var OpenHour you zainicjować w instytucji IF, w której otwierasz pozycję (Przykład: if (pos_open == false .................)/twoje reguły wejścia {OrderSend (NULL, OP_BUY, Lots , Ask, 0, Bid-SL * Point, Bid PT * Point); OpenHour = Hour ();} Jest to zrozumiałe i zrozumiałe? PS for Daily, lub inny TF, możesz użyć podobnej logiki, zamień tylko Hour () Minute () lub Day () - jako nowe świece
dzięki za kod i myślę, że lepiej gt; = zamiast == Próbowałem również tego. if (TimeCurrent () gt; = Time [0] (Period () * 60 - 1)) ...... Close Trade Ale nadal otrzymuję orderclose error 138 ..... requote, nie rozumiem dlaczego .. Jakieś pomysły? Lubo.
gt; = może być lepsza niż ==, ale kolejność zamykasz tylko raz, więc nie ma znaczenia, co napisałeś ... możesz uzyskać błąd zamknięcia zlecenia, gdy zorientujesz się w pobliżu (np. SL, PT), lub EA próbuje zamknąć pozycję z nieprawidłowym numerem biletu. Spróbuj ponownie sprawdzić kolejnośćWybierz przejście, spróbuj przeprowadzić rekompilację bez niego, po prostu spróbujbłąd. Teraz pracuję na innym komputerze, na którym nie mam jakiegoś funkcjonalnego EA, z tego, co mogę zrobić dla ciebie kodu. Miałem tu tylko prawo OrderSelect, możesz edytować go dla swoich potrzeb, jeśli (OrderSelect (position1, SELECT_BY_TICKET) == true) {OrderSelect (position1, SELECT_BY_TICKET); if (OrderCloseTime () == 0) {total1 = 1; } else {total1 = 0; }} else total1 = 0;/nikdy pozice 1 nebyla if (OrderSelect (position2, SELECT_BY_TICKET) == true) {OrderSelect (position2, SELECT_BY_TICKET); if (OrderCloseTime () == 0) {total2 = 1; } else {total2 = 0; }} else total2 = 0; EDYCJA: powtórz cytat, który wypróbujesz pod wpływem argumentu poślizgnięcia
Tak, zgadzam się, to i dotyczy M1 lub podobnych wykresów, na wyższych TF (na przykład 1h) masz zwykle ponad 500 tick, więc EA wywołuje funkcję start () ponad 500 razy. Byliśmy rozczarowani TF, z którym grasz Ale, masz rację, operator więcej lub równy jest bezpieczniejszym wirowaniem Czy rozwiązałeś problem z pozycją zamknięcia? Kolejny (może głupi) pomysł: kiedyś miałem problem z podobnymi znakami jak twój (Błąd OrderSend: (myślę) 128) - Próbowałem wszystkiego, co jest możliwe - nic, błędy nadal występują. Wpadłem w złość (bardzo, bardzo zły) kod, co i gdzie zostałem usunięty, a EA ponownie napisał. Kod wygląda identycznie, ale w starym był jakiś ukryty błąd lub problem. Do dzisiejszych dni nie wiem gdzie, ale tą (drastyczną) procedurą rozwiązałem. Jeśli nie widzisz jakiegoś sposobu, spróbuj wrócić na początek i postępuj krok po kroku Przepraszam, mój angielski jest okropny, ale mam nadzieję, że możesz to zrozumieć. (I muszę coś z tym zrobić)Zamieszczone przez ;
Myślę, że jest rilevant coz, jeśli pominięto następny pasek, pozycja nie jest zamknięta ...Zamieszczone przez ;