[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 940

 
extern double SL=20; // SL для открываемого ордера
extern double TP=20; // ТР для открываемого ордера
extern double Lot=0.01; // Жестко заданное колич. лотов
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;

double
M_0,
M_1;


bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell

//--------------------------------------------------------------- 3 --
// Учёт ордеров


for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;

if(Total!=0 || time==Time[1])return;


// Торговые критерии

M_0=iOsMA(NULL,0,13,34,8,0,0); // 0 бар
M_1=iOsMA(NULL,0,13,34,8,0,1); // 1 бар



if (M_1<0 && M_0>0)
Opn_B=true;

if (M_1>0 && M_0<0)
Opn_S=true;

//--------------------------------------------------------------- 7 --


if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Bid-SL*Point,Bid+TP*Point);time=Time[1];}

if (Opn_S)
{OrderSend(Symbol(),OP_SELL,Lot,Bid,0,Ask+SL*Point,Ask-TP*Point);time=Time[1];}
}


Uma EA que abre uma posição quando o OsMA cruza a linha zero. Não está claro onde abre e não está claro o porquê. Alguém pode olhar, talvez um erro no iOsMA(NULL,0,13,34,8,0,0)?
 
T.H.C.:

Uma EA que abre uma posição quando o OsMA cruza a linha zero. Não está claro onde abre e não está claro o porquê. Alguém pode verificar se há um erro no iOsMA(NULL,0,13,34,8,0,0)?

Você está testando em todos os carrapatos?
 
001:


Obrigado pela resposta. Esboçou uma EA rudimentar. Ainda não funciona.


neste código, procure por erros, a função OrderSend pressione F1 vai trazer ajuda no editor padrão, veja a ordem dos parâmetros de entrada há um erro.

+ usar Impressão / Alerta para percorrer os valores das variáveis, inseri-lo na seção de código após ( atribuições / executar )

e lembre-se de normalizar a saída, DoubletoSt...NormalizeDupla...TimeToStr

Em anexo encontram-se 2 bibliotecas gratuitas com código kimIV.

O código é simples, com funções prontas, muito bom para iniciantes.

Arquivos anexados:
_lib2.zip  10 kb
 

// Dificilmente um número definido de lotes :)

 
T.H.C.:
Sim

Então você tem um efeito de tagarelice sobre a barra zero.
 
Vinin:

Testes em todos os carrapatos?
Sim
 

Como "parar" o fluxo do descontentamento para os CD?

Abaixo está um extrato do tronco:

10:00:25 Carrapato antigo EURUSD30 1.38730/1.38740
10:00:25 Carrapato antigo EURUSD240 1.38730/1.38740
10:00:25 Carrapato antigo EURUSD1440 1.38730/1.38740
10:00:25 Carrapato antigo EURUSD15 1.38730/1.38740
10:00:25 Carrapato antigo EURUSD1 1.38730/1.38740
10:00:25 Carrapato antigo EURUSD60 1.38730/1.38740
10:00:25 Carrapato antigo EURUSD5 1.38730/1.38740
11:00:34 Carrapato antigo EURUSD30 1.38847/1.38863
11:00:34 Carrapato antigo EURUSD240 1.38847/1.38863
11:00:34 Carrapato antigo EURUSD1440 1.38847/1.38863
11:00:34 Carrapato antigo EURUSD15 1.38847/1.38863
11:00:34 Carrapato antigo EURUSD1 1.38847/1.38863
11:00:34 Carrapato antigo EURUSD60 1.38847/1.38863
11:00:34 Carrapato antigo EURUSD5 1.38847/1.38863
11:25:06 Old tick EURUSD30 1.38707/1.38722
11:25:06 Old tick EURUSD240 1.38707/1.38722
11:25:06 Old tick EURUSD1440 1.38707/1.38722
11:25:06 Old tick EURUSD15 1.38707/1.38722
11:25:06 Old tick EURUSD1 1.38707/1.38722
11:25:06 Old tick EURUSD60 1.38707/1.38722

 
Vinin:

Então você tem um efeito de tagarelice sobre a barra zero.
Então, o que fazer? Um método menos preciso? Não há outra saída? Haverá tagarelice quando esta EA funcionar também?
 

O teste lhe dá dor de cabeça?

 

// Critérios de comercialização

M_0 ={ iOsMA(0,0,13,34,8,0,1) }; //| 1bar
M_1 ={ iOsMA(0,0,13,34,8,0,2) }; //| 2bar

Opn_B ={ (((M_1<0)==1) &&((M_0>0)==1) ) };
Opn_S ={ (((M_1>0)==1) &&((M_0<0)==1) ) };

tente desta forma, mas sem o jarro:)