[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 482

 
Urain писал(а) >>

Escreva uma função bool() para verificar se a diferença entre o preço e a parada estabelecida é maior do que o StopLoss (do marketinfo)

então verdadeiro senão falso.

Então, antes de abrir uma ordem, você deve verificar se(função()) e abrir uma ordem.


Por que eu preciso disso se eu definir um stop loss 30% mais do que stop loss nesta empresa de corretagem?

khorosh escreveu >>

2 e 3 pontos estão errados. Certo: Stop Loss e Take Profit para compra, Stop Loss e Take Profit para venda, partindo de Ask, Stop Loss e Take Profit para venda, partindo de Bid.
O cheque é simples. Calcule que ganho, se o takeprofit for acionado, você terá com sua variante. Não será igual a TakeProfit em pontos. Na variante proposta, ela será exatamente igual.


Portanto, modifiquei como antes e obtive o mesmo resultado. Deixei apenas a normalização de preços.
Mas o erro no testador permanece e o mais interessante é que ele se repete não para todas as ordens, mas para algumas delas.
Tem erro 4107 para 1 de cada 10 pedidos e devolve os outros 9 sem erros.

 

Помогите пожфлуйста с индикаторами: 1-й чтобы не убирал разметку на графике. 2-й чтобы лини старших ТФ были внешними на младших и чтобы можно было задать отоброжение(после того как задаешь отоброжение сразу все нормально пока не перещелкнешь ТФ,после этого все линии младших ТФ на старших)нии младших ТФ на старших)

 
Eu esqueci...
Arquivos anexados:
macd.rar  7 kb
 
2
Arquivos anexados:
multi.rar  9 kb
 
baltik писал(а) >>


Por que preciso disso se eu estabeleço um Stop Loss 30% a mais do que o Stop Level em minha corretora?


Por isso, redizi como estava e o resultado ainda é o mesmo, só me resta a normalização de preços.
Mas o erro no testador permaneceu e o mais interessante é que eu tenho erros em algumas ordens e não em todas elas.
Para 1 de 10 ele deu o erro 4107, e os outros 9 são processados sem erros.


Mostre-me o código, vamos dar uma olhada nele.
 
Noterday >>:
Народ, у меня проблема, причем никак не могу допетрить в чем дело, особо не пинайте.
Есть стандартный MACD, хочу в индикаторе отметить все пики столбцов (значками), вот код:
Таким образом я нарисовал все экстремумы в индикаторе. Всё ОК, НО!
Когда функцией Print я вывожу значения всех найденых пиков
то вот что выходит:
Я так понимаю что 2147483647 это нули или пустые значения?

Bem, ninguém pode ajudar? :)

 
Noterday писал(а) >>

Bem, ninguém pode ajudar? :)


O problema parece ser com as matrizes MAX e MIN.
Você os tem ligados aos amortecedores indicadores com SetIndexBuffer() ?

 
Sim, é claro :)
 
Noterday писал(а) >>
Sim, é claro :)


Você usa a função IndicatorBuffers()?

 
Aqui está o código completo:
#property indicator_separate_window
#property indicator_buffers 4

#property indicator_color1 MediumPurple
#property indicator_color2 MediumPurple
#property indicator_color3 Green
#property indicator_color4 Red

#property indicator_width3 1
#property indicator_width4 1


extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;

double MMACD1[];
double SMACD1[];
double MAX[];
double MIN[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{

SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);

SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(2,119);
SetIndexArrow(3,119);

SetIndexDrawBegin(1,SMACD1);
IndicatorDigits(Digits+2);

SetIndexBuffer(0,MMACD1);
SetIndexBuffer(1,SMACD1);
SetIndexBuffer(2,MAX);
SetIndexBuffer(3,MIN);

IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Signal");

return(0);
}
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;

for(int i=0; i<limit; i++)
MMACD1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

for(i=0; i<limit; i++)
SMACD1[i]=iMAOnArray(MMACD1,Bars,SignalSMA,0,MODE_SMA,i);

for(i=0; i<limit; i++)
{
if(MMACD1[i+1] > MMACD1[i+2] && MMACD1[i+1] > MMACD1[i])
MAX[i+1] = MMACD1[i+1];

if(MMACD1[i+1] < MMACD1[i+2] && MMACD1[i+1] < MMACD1[i])
MIN[i+1] = MMACD1[i+1];
}

for(i=0; i<limit; i++)
{
if (MAX[i+1] != EMPTY_VALUE)
Print(MAX[i+1]);
}

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