Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опять редактор искажает имя, переименуйте как нужно.
Выдалась свободная минутка, немного подкорректировала программу и выставляю с исходником, не судите строго, я еще только учусь.
Обратите внимание, внесены изменения в файл настроек FN, теперь в первую строку, как и раньше, пишите минимальное значение пунктов при котором можно открывать позицию, во вторую, как и раньше, пишите минимальное значение пунктов при котором можно переоткрывать позицию после отката, в третью! - значение пункта принятого для используемого инструмента, в четвертую разрешающий флаг сохранения расчетных данных, как и раньше в 3, в пятую - разрешающий флаг вывода графика, как и раньше в 4.
Ресунок выглядит теперь так:
Над рисунком значение профита в пунктах при оптимальной торговле в соответствии с Вашими условиями на выбранном интервале истории.
Исходник программы на Матлабе:
function Adept() clc clear ; Time=clock tic cd; FN=load('FN.csv'); UR=FN(1,1);OT=FN(2,1);Point=FN(3,1);Saves=FN(4,1);Prints=FN(5,1); GL=load('FClose.csv'); dn=length(GL); Min=GL(1);IMin=1; Max=GL(1);IMax=1; IBuy(1,1)=0;ISell(1,1)=0; nb=1;ns=1;FR=0; for i=2:dn if ((Min>GL(i))&&(FR~=1)) FR=-1;IMin=i; Min=GL(i); elseif ((Min>GL(i))&&(FR==1)) FR=-1;IMin=i; Min=GL(i); elseif ((Max<GL(i))&&(FR~=-1)) FR=1;IMax=i; Max=GL(i); elseif ((Max<GL(i))&&(FR==-1)) FR=1;IMax=i; Max=GL(i); end; if ((IMax>IMin)&&(FR==1)) if ((Max-Min)>UR) Buy(1,nb)=Min; IBuy(1,nb)=IMin; Buy(2,nb)=Max; IBuy(2,nb)=IMax; if ((Max-GL(i))>OT) FR=-1;IMin=i;nb=nb+1; Min=GL(i); end; end; elseif ((IMax<IMin)&&(FR==-1)) if ((Max-Min)>UR) Sell(1,ns)=Max; ISell(1,ns)=IMax; Sell(2,ns)=Min; ISell(2,ns)=IMin; if ((GL(i)-Min)>OT) FR=1;IMax=i;ns=ns+1; Max=GL(i); end;end;end; end; PF=0; for i=1:nb-1 PF=PF+(Buy(2,i)-Buy(1,i)); end; for i=1:ns-1 PF=PF+(Sell(1,i)-Sell(2,i)); end; PF=PF/Point; if (Saves==1) dlmwrite('Buy.csv',Buy,'precision', '%.5f', 'newline', 'pc'); dlmwrite('IBuy.csv',IBuy,','); dlmwrite('Sell.csv',Sell,'precision', '%.5f', 'newline', 'pc'); dlmwrite('ISell.csv',ISell,','); end; if (Prints==1) plot (GL(:), 'g'), hold on,plot (ISell(:,:),Sell(:,:),'ro:',IBuy(:,:),Buy(:,:), 'b*:'), str=strcat('Профит = ',mat2str(PF),' пунктов'); grid on title(str); end; tocКомментарии к коду не писала, мало свободного времени, да там все просто и наглядно, знающий матлаб легко разберется. Если кто переведет на MQL - выставите в этой теме, большинству это будет более интересно чем мой вариант. В архиве новый вариант ехе - шника с вспомогательными файлами.Просит еще один dll файл: boost_signals-vc80-mt-1_34_1.dll
какая версия матлаба у вас ? каков алгоритм работы советника?
Просит еще один dll файл: boost_signals-vc80-mt-1_34_1.dll
какая версия матлаба у вас ? каков алгоритм работы советника?
Я эту dll уже выставляла выше, только редактор форума при загрузке исказил название убрав все -, загрузите и переименуйте как надо.
У меня Матлаб 7.7.0 R2008. Если Вы пытаетесь запустить на своем матлабе более ранней версии, проще будет скопировать исходник в редактор своего матлаба, откомпилировать и запускать из матлаба догрузив все вспомогательные файлы из архива.