Помощ за МА пресичане
-
Здравейте и поздравления за генератора!
Наистина е най-добрия който съм срещал.Сега на въпроса, от извесно време си правя успешно някои експертчета, но с едно уж елементарно не мога да се справя.Става въпрос за пресичане на мувинг аверидж с периоди 3 и 6, като пресичане нагоре 3 над 6 - купува, а обратно продава. Искам също така когато 3 например пресече нагоре и купи, когато пресече обратно надолу да затвори покупката и да отвори продаване.
Прегледах първо целия форум за нещо подобно и попаднах на темата от трета страница как може да затворим сделка без ТП и СЛ.
viewtopic.php?f=2&t=1926Там Alepie е дал решение, но проблема е че когато двете МА тръгнат да се пресичат, но за няколко секунди се задържат много близо една до друга и се разминат няколко пъти за секунда, се отварят и затварят голямо количество сделки. Аз искам когато се пресекат да се отвори само една сделка.За целта добавям към примера и once per bar, но тогава експерта не работи.
И на края защо това чудо, което е само за продажба не работи?Отваря позиция, но не я затваря при обратното пресичане.
http://fxdreema.com/shared/C1O07vA9dПоздрави.
-
Това с многото сделки се решава по различен начин в зависимост от идеята. Например с "No trade is running", което виждам че си го подхванал. Сега защо след "No trade is running" не можеш да затвориш поръчката... да кажем че защото работата на оранжевия изход на "No trade is running" е да се задейства когато няма поръчка, а не когато има. С други думи - пробвай с жълтия изход, при него нещата се случват наопаки на оранжевия.
-
Странно, направих го така както ми препоръча, но пак не затваря:
http://fxdreema.com/shared/rnUo0NIeeПосле пробвах само такъв експерт:
http://fxdreema.com/shared/oLK9gL0hb
като отварям ръчно и само чакам да затвори, но пак не затваря.
Да не би в блока "close each trade" нещо да има проблем.
Но както и да е. Би ли ми помогнал да направя такъв експерт, който искам в първия ми пост, че аз явно нещо не се справям
Поздрави!
-
Е, ако ти го направя няма да научиш защо не се получава досега

Има нещо наречено Magic number. Идеята е, че докато можем да пуснем няколко експерта по едно и също време, то поръчките са събрани на едно и също място и все някак експертите трябва да познават кои са собствените им поръчки. Така че всяка поръчка си има такова номерче дето й е белег, също както цвета на тениските на футболистите.
Във fxDreema може да се настройва един номер дето съм нарекъл MagicStart (входен параметър за всеки експерт), както и Group номер в блоковете за търговия. Накрая Magic number на поръчката се получава по формулата Magic number = MagicStart + Group. По начало Group номера е нула (празно поле е, но е нула), така че без настройки Magic number е равен на MagicStart. Ще забележиш че MagicStart не е нула, а е нещо си... общо взето няма значение какво е, важното е ако има няколко експерта на всеки от тях да е различно.
Ръчно пуснатите поръчки обаче имат Magic number равен на 0, затова те не се закачат от експерта. Но ако сложиш Magic number нула или пък Group # параметъра, може и да се случи нещо.
-
OK, след 10 - 15 прочитания на поста горе долу успях да схвана за какво става въпрос

Наистина след като промених маджик старта на 0 и след ръчно пускане експерта затвори сделката. Но въпреки всичко не можах да разбера, за напълно автоматизирания експерт, защо не бачка close each trade-a. Нали там през оранжевия изход пуска пресичането и селла, а през жълтия обратното пресичане и клоуза. Може би на group# трябва нещо да се зададе?
Ето за този говоря:
http://fxdreema.com/shared/CrYCRnQdc -
При мен на бектест се затварят поръчките, макар че не всеки път. Вероятно не се случва всеки път в момента в който новия бар се образува да има и пресичане. Once per bar поставен така действа по такъв начин че всичко свързано под него се изпълнява веднъж на всеки бар, в самото му начало. Понеже следиш MA за текущия бар (Candle ID = 0), то това което виждаш накрая на графиката не е това което е било в момента на отваряне на бара. По-точно това което виждаш е в момента на затварянето.
За всеки случай когато се чудиш кой блок кога се изпълнява, слагаш под него например "Draw arrow" и гледаш какво става на графиката. Има също така и по-специален блок "Logic points tester"... той зависи от случая може да е и по-полезен.
-
Дa, като махнах once per bar и почна да си затваря като пич

Явно се бях презастраховал с двата ограничителни блока.
Благодаря за помощта. -
То зависи в каква последователност са поставени нещата. В друг случай може първо да се проверява за пресичане, и след това да преминава през Once per bar. Така се хваща пресичането някъде по средата на бара.
-
Имаш предвид да се сложат първо блоковете за пресичането и отдолу чак once per bar-а? За това не се бях сетил, въпреки че е близко до акъла
Ще го оставя да поработи малко така и ако пак нацъка 1000 сделки може да го пробвам и по този начин. Мерси за идеята -
Само казвам че има значение как са, зависи от стратегията

-
Здрасти отново,
имам нужда от малко помощ за логиката на един експерт. Искам да направя така че да се пускат два pending orders - buy и sell, само че не едновременно както е в един от твоите примери, а един след друг. Примерно първо се поставя sell pending order-a, след като цената го стигне и се отвори поръчката и (евентуално) достигне take profit, веднага след това да се постави buy pending order, пак отваря, пак стига tp и нов sell pending се поставя. Целта ми е да стане един цикъл, като в даден момент има само една отворена позиция и в момента на достигане на tp да почне да чака противоположната позиция.
Тука почнах нещо да правя, но не се сещам как да ги накарам двата клона да бачкат един след друг.
http://fxdreema.com/shared/6wL3rvB5c -
"Check last closed trade type" може да свърши работа.
-
Точно в десетката
Мерси -
Здрасти,
Искам да те попитам, ако отворя на две различни двойки валути на две различни графики един и същ експерт и ако в него фигурира no trade is running ще отваря ли сделки и на двете графики или ще отваря на която първо се случи дадено събитие?
-
Значи No trade проверява дали има поръчки, но филтрира наличните по определени критерии - валутна двойка, magic number (Group), тип (buy, sell). Мисля че е добре да сложиш Market mode на Specified market и без да пишеш нищо в полето, за да си работи блока само с поръчки от валутната двойка на графиката.
-
Благодаря за бързия отговор. Заредил съм нещата да бачкат, дано да се получи

Сега може ли да попитам нещо друго - да кажем че съм пуснал някаква поръчка, но цената е избягала в друга посока и е натрупала загуба примерно -100 пипса.Аз не искам да затварям, защото загубата е неприемлива. Но докато ме е нямало цената се е обърнала и е доближила поръчката на -20 пипса, което за мен вече е приемлива загуба и искам да затворя( да затвори експерта). Има ли начин? И има ли разлика ако поръчката съм я пуснал ръчно или я е стартирал друг експерт, който аз след това съм деактивирал.
Айде лека вечер (не знам в кой часови пояс си де), че ми бръмна главата с тия експерти
-
Има една опция да се ползват виртуални стопове вместо реални. Това си има своите предимства и недостатъци, но веднъж един поиска опция за изчакване на стопа - ако е тръгнало на загуба и не се е върнало до известно време, тогава се затваря, а ако се е върнало - нищо не се случва. Или поне такова нещо беше по спомен. Тая опция е "Virtual stops timeout" в "Options->Current project options". Разбира се трябва и виртуалните стопове да са пуснати.
Разликата между ръчно пусната поръчка и пусната от експерт е т.нар. Magic Number. Добра идея е да се запознаеш с това нещо. Това е атрибут който го има всяка поръчка, и при ръчно пусната е равен на 0, иначе има друг номер. Цели се разграничаване на поръчките от експертите - всеки да си знае номера на неговите поръчки и да не закача другите.
За всички генерирани експерти има един входен параметър MagicStart, който е същото като Magic number-a, ама с малко условности. Вътре в експерта на доста места има един параметър Group, който нормално е празен, което е 0. За поръчката дето ще се пуска важи формулата Magic number = MagicStart + Group.
-
Ами май да, въпреки че не бях чувал за trailing take-profit, но като помисля би свършило много добра работа

-
Ами аз имах предвид не за определено време, ако не се върне цената, защото няма как да знам колко ще е това време. Но пък знам колко като пипсове мога да си позволя да загубя и затова исках ако може чрез размера на загубата да играя - ако размера е голям нищо не прави, но ако размера намалее до например 5пипса затваря.
Значи идеята ми е следната - пускам един скалпер през нощта, който отваря по 2 пендинг ордера sell i buy на разтояние 1 пип от цената и с tp 1 пип.Няма стоп лос. Така почти при всяко колебание на цената той затваря поръчки с печалба 1 пип.Обикновено на сутринта е затворило около 300 - 350 поръчки.Но проблема е че в горната и долната част на диапазона, в който се е движила цената през нощта, остават незатворени поръчки, които са натрупали няква текуща загуба.Аз сутринта го изключвам експерта и очаквам през деня цената да обере и остатъка от незатворените поръчки.НО някой път цената просто не ги достига и за да минимизирам загубите искам когато максимално ги доближи да ги затвори.(като тръгне нагоре и доближи бай-овете на едиколко си пипса, един по един да ги затваря и същото за сел-овете).Така ако отгоре са ми останали 10 незатворени бай-а и цената ги затвори на -5пипса, ще имам загуба -50.Е, сега ако и при това положение не ги стигне - здраве да е.Но мойто наблюдение е че в повечето пъти успява.
Аз цялата тая работа със затварянето си я правех ръчно, но щеше да е хубаво и да може автоматично

Иначе magic number-a ти миналия път ми го обясни и ми стана ясно, за което ти благодаря.