Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Мне не нравится иметь ордера без SL или без TP, а при использовании superclose() нет TP, пока не активирован трейлинг. Поэтому я спрашиваю, почему бы не установить начальный тейкпрофит (до того, как superclose установит его), чтобы подстраховаться на случай компьютерного сбоя. Поэтому я и предложил двукратное значение переменной takeprofit.
Также для инициирования на тестовом плане, параметры следующие:
Стоплосс: 10 до 30?
Тейкпрофит: от 20 до 100?
Таймфреймы: M1 M15 H4 Daily Weekly...
Валюты: 12 из выбора Holyguy7? Только те, у которых небольшой спред (<=5)?
Это всего лишь предложения.Хорошо, теперь я понимаю, что вы имеете в виду. Это довольно легко сделать. Я использую выделенный сервер со 100% временем работы, поэтому я не думаю о таких вещах.
А вот некоторые замечания по поводу superclose(). Я надеялся, что у меня будет возможность отслеживать цены TS по номеру тикета, чтобы можно было установить MaxTrades больше 1 и иметь возможность отследить менее 10 пунктов.
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==ID){//Pulls in order that meets the criteria for processing
int num=0;int pos=0;
for(int b=0;b<21;b++){// this (loopB) compares the ticket# of the selected order against the number stored in the ticket array
if(tsTicket==OrderTicket() ){
num++; pos=b;// if ticket numbers match, pos is the position in the array where the trailing data is stored
Print("(",pos,") Ticket ",tsTicket[pos]," found. SL is ",tsPrice[pos]);
break;
}
}
if(num==0){ // if the loopB did not find a matching ticket number it is time to initialize the data
for(int j=0;j<21;j++){
if(tsTicket[j]==0){// this is looking for the earliest instance within the array to store the data
pos=j;
break;
}
}
tsTicket[pos]=OrderTicket();// setting the ticket number
tsok[pos]=false;// this is to determine when trailing kicks in
Print("(",pos,") New ticket initialized = ",tsTicket[pos]);
}
if (OrderType()==OP_SELL) {
if (!tsok[pos] && (OrderOpenPrice()-Ask>=TSactivation*Point || TSactivation==0 ) ) {// if the trailing factor is false, but it has hit the activation point continue
tsPrice[pos]=Ask+TrailPips*Point;// this is the new trailinf stop price
tsok[pos]=true;// it's ok to proceed with trailing stop
if(TrailPips>8){// if this distance from the current price to the new stop, then modify the order.
ModifyStopLoss(Ask+TrailPips*Point);//modifies order
}
}
if (tsok[pos] && Ask+TrailPips*Point < tsPrice[pos] ){//if the position is gaining in profit
tsPrice[pos]=Ask+TrailPips*Point;
if(TrailPips>8){
ModifyStopLoss(Ask+TrailPips*Point);
}
}
if (tsok[pos] && Ask >= tsPrice[pos] ){// if the postion hits the stop price
CloseOrder(2);
Print("Order ",tsTicket[pos]," Closed from TS");
}
}
if (OrderType()==OP_BUY) {// reverse of SELL
if(!tsok[pos] && (Bid-OrderOpenPrice() >= TSactivation*Point || TSactivation==0 ) ) {
tsPrice[pos]=Bid-TrailPips*Point;
tsok[pos]=true;
if(TrailPips>8){
ModifyStopLoss(Bid-TrailPips*Point);
}
}
if (tsok[pos] && Bid-TrailPips*Point > tsPrice[pos] ){
tsPrice[pos]=Bid-TrailPips*Point;
if(TrailPips > 8){
ModifyStopLoss(Bid-TrailPips*Point);
}
}
if (tsok[pos] && Bid <= tsPrice[pos] ){
CloseOrder(1);
Print("Order ",tsTicket[pos]," Closed from TS");
} } } } }
for(i=0;i<21;i++){// this searches the array for ticket numbers that are now obsolete due to an order that has closed
if(tsTicket>0){
bool found=false;
for(b=0;b<OrdersTotal();b++){
OrderSelect(b,SELECT_BY_POS);
if(tsTicket==OrderTicket()){
found=true;
break;
}
}
if(!found){// if there are matching ticket numbers in the trade pool and the array then nothing happens
tsTicket=0;tsPrice=0;tsok=false;// if there is an obolete ticket the the data is reset. And the next new ticket data can occupy this space
Print("Array pos ",i," Cleaned");
} } } }Вот советник с изменением TP после того, как UseClose станет true. Он удвоит TP в целях безопасности. Спасибо Джо!
Я надеялся протестировать Profit Generator 2.4. Он не разместил ни одной сделки с 630GMT..... размещал ли он другие сделки для кого-либо. TF15 $/CHT, £/$, Euro/$... Пожалуйста, дайте мне знать, так как я думаю, что это хороший советник в принципе.
Вы получите меньше сделок, потому что первый критерий заключается в том, что текущий бар должен быть больше, чем значение LongBar по длине. Я бы рекомендовал использовать свечу меньшего размера на нижнем ТФ.
Хорошо, но как новичок я подожду, пока кто-нибудь более опытный даст высокие и низкие пределы для различных параметров.
Я сейчас тестирую 2.4 на пресетах от Holyguy7 и с 1:00 утра я сделал только 3 сделки (1:10 sell usdcad на дневном BAD; 7:29 и 14:29 gbpusd на H1 первая 28 пунктов, а вторая фактически лузер). Это кажется нормальным, у кого-нибудь есть такие же результаты?
Также, чтобы позволить тестирование на нескольких таймфреймах, я изменил три строки в версии 2.6:
1 -
extern int ID;
становится
extern int ID_BASE=100000; чтобы дать номер PG_2.6 (здесь 1).
2 - я добавил следующую строку сразу под "int Bar;".
int ID;
3 - Я добавил функцию init()
int init(){
ID=ID_BASE+Period(); return(0);
}
Таким образом, на дневном графике magicnumber будет равен 101440 и будет отображаться в комментарии к сделке. Так будет проще анализировать результаты для каждого таймфрейма и вида параметров. Я еще не тестировал это, но это должно работать.
И для конкретного графика у вас будет фиксированный ID, а не случайное число.
Также, возможно, мы могли бы добавить начальный тейкпрофит, используя функцию superclose. Просто на случай сбоя компьютера.
PS: я внесла другие изменения, которые я должна удалить перед публикацией. скажите мне, если интересно.Отличная идея! Единственное, что нужно иметь в виду, это если вы собираетесь проводить разные тесты на одной паре и TF для изменения Base ID. Я добавил эти изменения, но сделал одно небольшое изменение. ...поскольку Период может меняться от переменной "период" (отличной от графика), я сделал так:ID=ID_BASE+P(); return(0);
P() возвращает фактический период, используемый программой. Отличная идея... с какими еще изменениями вы играли?
Вот 2.6.2.
ничего больше с момента последнего сообщения об этом (gbpusd все еще проигрывает), но я работаю на H1 и дневном и держу longbar=15.
Давайте подождем этой ночи (в целом для пар jpy).
Кто-нибудь может предложить мне параметры тестирования (SL и TP)?
Я буду использовать безчасовой лимит на основных валютах и M1, M5, M15, H1 и H4.
С момента последнего сообщения об этом (gbpusd все еще проигрывает) больше ничего, но я работаю на H1 и на дневном и сохранил longbar=15. давайте подождем этой ночи (в целом для пар jpy).
Я заметил, что GBPUSD лучше работает на дневном графике:
TP: 40
SL: 30
Без таймфильтра
Лонгбар: 10
Просто кажется более надежным. EURUSD и USDCHF, кажется, лучше работают на графике H1 с лонгбаром на 15 и включенным таймфильтром.
Сейчас я испытываю трудности, так как основные валютные пары не дают мне покоя с этим советником. Кто-нибудь добился успеха на основных валютных парах? Если да, пожалуйста, опубликуйте свои результаты.
Привет
HolyGUY,
Каков сегодня прогресс в работе над этим новым советником
Привет
HolyGUY,
Каков прогресс сегодня в работе над этим новым советником?Со вчерашнего дня произошел некоторый откат по некоторым основным валютным парам. Тем не менее, за неделю мы выросли более чем на 20%, и в настоящее время в системе нет открытых сделок.
Я опубликую свои результаты через несколько часов. Я использовал GBPUSD на таймфрейме H1, но считаю, что она более надежна на таймфрейме D1, как и другие. Я буду держать вас в курсе.