Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 625

 
laveosa:

нееааа  не работает.....  а для чего мы это делали?


MaperiodM5ma_2 = 25 / Period(); Допустим ставим на Н1, в итоге получится 25/60=0.41, в int будет вообще 0, т.к. такого периода МА не существует то в этом случае используем минимально возможный, т.е. 1, собственно для этого. Вообще то должно работать, я такие варианты иногда использую, результат торговли отличается незначительно от "родного" периода.
 
Vinin:

Просто надо думать прежде чем задавать вопросы. Близкий и не близкий - совершенно разные понятия.

вопрос был предельно прост как сделать так чтоб результат теста был одинаковы на любом тайминге, если был не достаточно ясен то будем стараться в следующий раз быть более детальным...  Спасибо!
 
benzovoz:


MaperiodM5ma_2 = 25 / Period(); Допустим ставим на Н1, в итоге получится 25/60=0.41, в int будет вообще 0, т.к. такого периода МА не существует то в этом случае используем минимально возможный, т.е. 1, собственно для этого. Вообще то должно работать, я такие варианты иногда использую, результат торговли отличается незначительно от "родного" периода.

понял спасибо и вообще очень помогли понять мне кое какие вопросы ... пока результат не поменялся но всё равно спасибо :)
 
laveosa:

понял спасибо и вообще очень помогли понять мне кое какие вопросы ... пока результат не поменялся но всё равно спасибо :)


У Вас не получится т.к. мы не учли бары расчёта индикатора, я использую нулевой бар поэтому у меня работает а у Вас 1 и 2-ой бары, при переходе на старший ТФ их не "конвертируешь".

M5maBIG_1= iMA(ed, Period() , MaperiodAVTO ,0,MODE_EMA,PRICE_CLOSE,1);


 
benzovoz:


У Вас не получится т.к. мы не учли бары расчёта индикатора, я использую нулевой бар поэтому у меня работает а у Вас 1 и 2-ой бары, при переходе на старший ТФ их не "конвертируешь".

M5maBIG_1= iMA(ed, Period() , MaperiodAVTO ,0,MODE_EMA,PRICE_CLOSE,1);


 


я понял....  сейчас попробую

 
Есть индикатор:
 
//+------------------------------------------------------------------+
//| T3MA_ALARM.mq4 |
//| Copyright © 2011, Martingeil |
//| fx.09@mail.ru |
//+------------------------------------------------------------------+
//исправленный Martingeil, теперь можно в тестере увидеть его стрелки.
#property copyright "Copyright © 2011, Martingeil"
#property link "fx.09@mail.ru"

//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- indicator parameters
extern int period = 4; //12
extern int shift = 0; //сдвиг по бару
//---- indicator buffers
double BufferUp[],BufferDn[];
int q,st=5;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
//---- drawing settings
SetIndexStyle(0,DRAW_ARROW,2);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW,2);
SetIndexArrow(1,234);

SetIndexBuffer(0,BufferUp);//стрелка синяя верх
SetIndexBuffer(1,BufferDn);//стрелка красная вниз
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("T3MA-ALARM ("+period+")");
//---- initialization done
if(Digits==3 || Digits==5) q=10;
st=st*q;
return(0);}

int deinit()
{
ObjectDelete("low");
ObjectDelete("high");
}
//+----------------------------------------------------------------------+
//| Moving Average of Oscillator |
//+----------------------------------------------------------------------+
int start()
{
//---- ArraySetAsSeries --------------------------------------------------
double Ma[500],MaOn[500];
double y0[500],y1[500],y2[500];
int i,limit=ArraySize(Ma);
ArraySetAsSeries(Ma,true);
//---- IndicatorCounted --------------------------------------------------
int counted_bars=IndicatorCounted();
int limit1=Bars-counted_bars;
if (limit1>1){limit1=Bars-period-1;}
//---- EMA ---------------------------------------------------------------
for(i=limit1; i>=0; i--) Ma[i] =iMA(NULL,0,period,0,MODE_EMA,PRICE_CLOSE,i);
for(i=limit1; i>=0; i--) MaOn[i]=iMAOnArray(Ma,limit,period,0,MODE_EMA,i);

for(i=limit1; i>=0; i--)
{
y0[i+shift]=MaOn[i+shift];
y1[i+1+shift]=MaOn[i+1+shift];
y2[i+2+shift]=MaOn[i+2+shift];

if(y0[i+shift]-y1[i+1+shift]<0 && y1[i+1+shift]-y2[i+2+shift]>0){BufferDn[i+1]=High[i+1]+st*Point;}//продажа
if(y0[i+shift]-y1[i+1+shift]>0 && y1[i+1+shift]-y2[i+2+shift]<0){BufferUp[i+1]=Low[i+1]-st*Point;}//покупка
//---- Signal Trend Up || Dn ---------------------------------------------
if(y0[i]-y1[i+1]>0) Comment ("\n SWAPLONG = ",MarketInfo(Symbol(),MODE_SWAPLONG),
" SWAPSHORT = ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n BUY TREND ",DoubleToStr(Close[i],Digits));

else if(y0[i]-y1[i+1]<0) Comment ("\n SWAPLONG = ",MarketInfo(Symbol(),MODE_SWAPLONG),
" SWAPSHORT = ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n SELL TREND ",DoubleToStr(Close[i],Digits));
}


//---- done
return(0);}
//+---------------------------------------------------------------------+




Хочу зделать советник который бы при появлении стрелки входил в позицию, какое условие нужно прописать в советнике?

А вот сам советник:

//+------------------------------------------------------------------+
//| million.mq4 |
//| Словаков Максим |
//| www.rubrf.ru |
//+------------------------------------------------------------------+
#property copyright "Словаков Максим"
#property link "www.rubrf.ru"
#property version "1.00"
#property strict

extern int Risk = 1;//риск на зделку
extern int Magic = 123; //магическое число


int x;
int y;
int v;
int z;
//+------------------------------------------------------------------+
int start()
{
double strelka=iCustom(NULL,0,"strelka",10,0,1,0);
double ma = iMA(NULL,0,72,0,MODE_SMMA,PRICE_CLOSE,0);
double atr = iATR(NULL,0,72,0);
double lotBuy = ((Risk*AccountEquity())/(1*(Ask-(Ask-atr)))/10000000);
double lotSell = ((Risk*AccountEquity())/(-1*(Bid-(Bid+atr)))/10000000);
if(OrdersTotal()==0)
{
if(ma<Bid)
{
  if(какое здесь нужно условие написать?)
{
x=OrderSend(Symbol(),OP_BUY,lotBuy,Ask,3,Ask-atr,0,"www.rubrf.ru",Magic,0,Blue);
}
}
if(ma>Bid)
{
  if( какое здесь нужно условие написать? )
{
y=OrderSend(Symbol(),OP_SELL,lotSell,Bid,3,Bid+atr,0,"www.rubrf.ru",Magic,0,Red);
}
}
}


return(0);
}
//+------------------------------------------------------------------+


 

Можно ли загружать графики для тех.анализа,- индексов S&P 500 Futures Chart , TA 25 Chart, и S&P 500 Chart если это возможно может подскажете как это сделать,может есть объяснение как загружать!

Не получается найти такого брокера,может посоветуете программу для тех.анализа, которая позволяла загрузку интересующих меня индексов (можно в реальном времени)или же брокера.

Может есть возможность загрузки этих индексов МТ-4 или МТ-5. Я только начинаю пытаться заниматься тех.анализом ,очень бы хотелось услышать совет специалиста,как справится с моей задачей.

Заранее благодарен за оказанную помощь.
 
igalx:

Можно ли загружать графики для тех.анализа,- индексов S&P 500 Futures Chart , TA 25 Chart, и S&P 500 Chart если это возможно может подскажете как это сделать,может есть объяснение как загружать!

Не получается найти такого брокера,может посоветуете программу для тех.анализа, которая позволяла загрузку интересующих меня индексов (можно в реальном времени)или же брокера.

Может есть возможность загрузки этих индексов МТ-4 или МТ-5. Я только начинаю пытаться заниматься тех.анализом ,очень бы хотелось услышать совет специалиста,как справится с моей задачей.

Заранее благодарен за оказанную помощь.



можно, просто нужно конвертировать в нужный формат, есть даже брокеры у которых есть эти инструменты. В Альпари СиПи есть.

 

Всем доброго дня!

Требуется помощь, консультация.

 Не могу передать строчные данные в DLL библиотеку. Толи тип переменной не тот, толи записывается в неверной кодировки.

DLL на Дельфи:

library SaveFile;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes,Dialogs;

{$R *.res}
function SaveFiles(Path: ShortString ;
Symbol: Shortstring;
Stroka: string ): integer; stdcall;

var outfile: TextFile;

begin
AssignFile(outfile, 'C:\Log.txt');

 try
   //Append(outfile);
   Rewrite(outfile);

   writeln(outfile, Stroka);
   CloseFile(outfile);
   Result:=0;
 except
   Result:=1;
 end;
   Result:=0;
 
end;

exports SaveFiles;
 
end.

 На переменные Path и Simbol не обращаем внимание. В файл систематически записывается какая-то не читаемая ерунда.

Перепробовал все типы переменной Stroka(Pchar,String, ShortString, AnsiString) все равно в текстовом файле выводится что-то наподобие "0 0 : 0 3 : 0 6   : :   1 . 3" пробовал переключать кодировки - все равно не читаемо. 

 

Все разобрался.

Записывается все в  UTF-8  ASCII с автоматическим добавлением пробелов после каждого "полезного" символа. И передать более 26 символов(13 полезных) не удается. Придется передавать несколькими переменными и уже потом соединять. Как-то так...