Aqui precisamos fazer pedidos pendentes e calcular seus preços em relação ao preço de fechamento do bar anterior. BUYSTOP é colocado, enquanto SELLSTOP retorna erro 130. Há algum erro neste código? Ou em outra função.
Aqui precisamos fazer pedidos pendentes e calcular seus preços em relação ao preço de fechamento do bar anterior. BUYSTOP é colocado, enquanto SELLSTOP retorna erro 130. Há algum erro neste código? Ou em outra função.
void SetOrders() {
double ldStop=0, ldTake=0;
int spr=MarketInfo(Symbol(), MODE_SPREAD);
double PredBar=iClose(NULL,PERIOD_M5,1);
double pAsk=PredBar+(DistanceSet+spr)*Point;
double pBid=PredBar-(DistanceSet+spr)*Point;
if (!ExistOrder(1)) {
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake, 1);
}
if (!ExistOrder(2)) {
if (StopLoss!=0) ldStop=PredBar+(StopLoss*Point);
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake, 2);
}
}
Por que você não se dirige ao autor? Ele ainda está vivo e jovem, não velho! As coordenadas estão no código acima de cada função! Todos o conhecem e o respeitam!
E aprenda como inserir um código como este, com SRC!
void SetOrders() {
double ldStop=0, ldTake=0;
int spr=MarketInfo(Symbol(), MODE_SPREAD);
double PredBar=iClose(NULL,PERIOD_M5,1);
double pAsk=PredBar+(DistanceSet+spr)*Point;
double pBid=PredBar-(DistanceSet+spr)*Point;
if (!ExistOrder(1)) {
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake, 1);
}
if (!ExistOrder(2)) {
if (StopLoss!=0) ldStop=PredBar+(StopLoss*Point);
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake, 2);
}
}
Você mexeu na PredBar sem entender, e esse é o resultado! Aprenda a matemática primeiro!
Boa noite, poderia me dizer como resolver o problema com o indicador não funcionando na nova construção? Ao compilar dá o erro 'TotalOrders' - tipo de expressão de troca ilegal (o erro é destacado no código ). Cumprimentos, alexandro.
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if ((OrderSymbol()==Symb) && (OrderType()==op))
{
ko++;
TotalOrders[ChartListPosition+1][ko][1]=NormalizeDouble(OrderOpenPrice(),dig);
TotalOrders[ChartListPosition+1][ko][2]=NormalizeDouble(OrderStopLoss(),dig);
TotalOrders[ChartListPosition+1][ko][3]=NormalizeDouble(OrderTakeProfit(),dig);
TotalOrders[ChartListPosition+1][ko][4]=OrderTicket();
TotalOrders[ChartListPosition+1][ko][5]=OrderLots();
TotalOrders[ChartListPosition+1][ko][6]=OrderType();
TotalOrders[ChartListPosition+1][ko][7]=OrderMagicNumber();
TotalOrders[ChartListPosition+1][0][0]=ko;
switch(TotalOrders[ChartListPosition+1][ko][6])
{
case OP_BUY:
Type="Buy";
break;
case OP_BUYSTOP:
Type="Buy Stop";
for(int j=1;j<=OrdersCount;j++)
{
switch(TotalOrders[ChartsListPosition+1][j][6])
{
case OP_SELL:
if (TotalOrders[ChartsListPosition+1][j][2]!=0 &&
ask>=(TotalOrders[ChartsListPosition+1][j][2]-NormalizeDouble(StopLevel*point,dig)))
{
test=StopLossColor;
}
else
{
if (TotalOrders[ChartsListPosition+1][j][3]!=0 &&
ask<=(TotalOrders[ChartsListPosition+1][j][3]+NormalizeDouble(StopLevel*point,dig)))
{
test=TakeProfitColor;
}
}
break;
karwin: Boa noite, poderia me dizer como resolver o problema com o indicador não funcionando na nova construção? Ao compilar dá o erro 'TotalOrders' - tipo de expressão de troca ilegal (o erro é destacado no código). Cumprimentos, alexandro.
A variável deve estar lá, e não algo mais:
int Переменная=TotalOrders[ChartListPosition+1][ko][6];
switch(Переменная)
{
case OP_BUY:
Type="Buy";
break;
case OP_BUYSTOP:
Type="Buy Stop";
Você pode me aconselhar, não estou muito familiarizado com o MT5, quase nunca o usei, enquanto testei apenas um núcleo de CPU, tenho 8 deles, por que isso? Como posso consertá-lo?
Você pode me aconselhar, não estou muito familiarizado com o MT5, quase nunca o usei, enquanto testei apenas um núcleo de CPU, tenho 8 deles, por que isso? Como posso consertá-lo?
Você pode me aconselhar, não estou muito familiarizado com o MT5, quase nunca o usei, enquanto testei apenas um núcleo de CPU, tenho 8 deles, por que isso? Como posso consertá-lo?
É assim para testes ou para otimização? Se apenas testar - um núcleo funciona, mas se você ativar a opção "Otimizar" no testador de estratégia, todos os núcleos do processador funcionarão.
evillive: você deve perguntar sobre isso no quinto fórum
"Não sou um usuário do MT5 e em breve o site será fumado, não me sento ali e faço a pergunta aqui".
barabashkakvn: Isso ocorre durante os testes ou durante a otimização? Se você apenas testar - um núcleo funciona, mas quando você ativar a opção "Otimizar" no testador de estratégia, executará todos os núcleos do processador.
Durante o teste, um núcleo está funcionando e tudo está funcionando como deveria,
Não consigo entender porque eles não usaram apenas toda a potência do processador no teste.
"Não sou membro do site, por isso fiz a pergunta aqui".
Durante o teste, um núcleo está funcionando e tudo está funcionando como deveria,
Não consigo entender por que eles não usam todo o poder do processador nos testes.
E por que devemos carregar todos os núcleos durante os testes (sem a otimização ativada)? Afinal, se testar com visualização, não há pressa, e se testar sem visualização - então os computadores modernos realizam esta tarefa como sementes de girassol em um único núcleo.
Aqui precisamos fazer pedidos pendentes e calcular seus preços em relação ao preço de fechamento do bar anterior. BUYSTOP é colocado, enquanto SELLSTOP retorna erro 130. Há algum erro neste código? Ou em outra função.
SetOrders() {
Aqui precisamos fazer pedidos pendentes e calcular seus preços em relação ao preço de fechamento do bar anterior. BUYSTOP é colocado, enquanto SELLSTOP retorna erro 130. Há algum erro neste código? Ou em outra função.
Por que você não se dirige ao autor? Ele ainda está vivo e jovem, não velho! As coordenadas estão no código acima de cada função! Todos o conhecem e o respeitam!
E aprenda como inserir um código como este, com SRC!
Você mexeu na PredBar sem entender, e esse é o resultado! Aprenda a matemática primeiro!
Boa noite, poderia me dizer como resolver o problema com o indicador não funcionando na nova construção? Ao compilar dá o erro 'TotalOrders' - tipo de expressão de troca ilegal (o erro é destacado no código). Cumprimentos, alexandro.
A variável deve estar lá, e não algo mais:
Olá camaradas.
Você pode me aconselhar, não estou muito familiarizado com o MT5, quase nunca o usei, enquanto testei apenas um núcleo de CPU, tenho 8 deles, por que isso? Como posso consertá-lo?
Olá camaradas.
Você pode me aconselhar, não estou muito familiarizado com o MT5, quase nunca o usei, enquanto testei apenas um núcleo de CPU, tenho 8 deles, por que isso? Como posso consertá-lo?
Olá camaradas.
Você pode me aconselhar, não estou muito familiarizado com o MT5, quase nunca o usei, enquanto testei apenas um núcleo de CPU, tenho 8 deles, por que isso? Como posso consertá-lo?
Você mexeu na PredBar sem entender, esse é o resultado! Aprenda a matemática primeiro!
você deve perguntar sobre isso no quinto fórum
"Não sou um usuário do MT5 e em breve o site será fumado, não me sento ali e faço a pergunta aqui".
Isso ocorre durante os testes ou durante a otimização? Se você apenas testar - um núcleo funciona, mas quando você ativar a opção "Otimizar" no testador de estratégia, executará todos os núcleos do processador.
Durante o teste, um núcleo está funcionando e tudo está funcionando como deveria,
Não consigo entender porque eles não usaram apenas toda a potência do processador no teste.
"Não sou membro do site, por isso fiz a pergunta aqui".
Durante o teste, um núcleo está funcionando e tudo está funcionando como deveria,
Não consigo entender por que eles não usam todo o poder do processador nos testes.