Como codificar? - página 275

 
alvintran:
Não não , não é problema SL/TP, eu sei que problema, eu disse que ele não faz nada, é mau em conta demo (execução instantânea ou algo que eu não sei) ele funciona bem, mas em conta real não funciona, não tem nenhum problema, apenas não faz nada.

Esta EA, por mim, não foi elaborada, não foi comprada, não foi testada, não foi limitada.

Por favor, ajudem-me!

Coloque as citações aqui, e tenho certeza de que alguém vai te infernizar.

 
alvintran:
Não não , não é problema SL/TP, eu conheço esse problema, eu disse que ele não faz nada, é mau em conta demo (execução instantânea ou algo que eu não conheço) ele funciona bem, mas em conta real ele não funciona, não tem nenhum problema, apenas não faz nada.

Esta EA, por mim, não foi elaborada, não foi comprada, não foi testada, não foi limitada.

Por favor, ajudem-me!

Ok, mas poste esta EA, eu posso ajudá-lo, mas preciso de um código.

Abraço,

Grzesiek

 

Como obter uma matriz bidimensional para arquivar e depois devolvê-la a outra matriz na próxima EA

Hi!

Alguém poderia me ajudar e explicar como posso obter um array bidimensional (ou seja, double array[x][y] onde x=100, y=30) para dentro de um arquivo e como posso recuperar os números deste arquivo para um array em otehr EA? 1-dimensão é muito mais fácil!!!

Eu encontrei este artigo: Gráficos Tridimensionais - uma ferramenta profissional de análise de mercado - Artigos MQL4 mas não sei como posso ler o arquivo com números deste arquivo no meu segundo EA...

Além disso, eu gostaria de economizar grande precisão dos meus números e estava ponderando em usar FileWriteDouble() funcionar (em binário).

Alguém poderia me ajudar - eu agradeço muito!

muito obrigado!

 
g.pociejewski:
Ok, mas poste esta EA, eu posso ajudá-lo, mas preciso de um código.

Abraço,

Grzesiek

Punho de agradecimento a todos !

Como eu disse, minha EA não tem nenhum problema, eu sei que o problema que você disse, na execução do mercado deve abrir o punho após essa posição modificada ( se não mostrar erro de ordem (130) ) . Mas minha EA não tem nenhum problema, apenas não faça nada.

Eu lhe dou condição antes de abrir uma posição :

if (Order === SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

//Open buy order

}

Obrigado Grzesiek! eu não posso compartilhar esta EA, por favor! contate-me no skype (duong_4sao) ou yahoo (tieuthienma88), teremos um disscus .

Espero que você possa me ajudar. Obrigado!

 
alvintran:
Punho obrigado a todos !

Como eu disse, minha EA não tem nenhum problema, eu sei que o problema que você disse, na execução do mercado deve abrir o punho após essa posição modificada ( se não mostrar erro de ordem (130) ) . Mas minha EA não tem nenhum problema, apenas não faça nada.

Eu lhe dou condição antes de abrir uma posição :

if (Order === SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

//Open buy order

}

Obrigado Grzesiek! eu não posso compartilhar esta EA, por favor! contate-me no skype (duong_4sao) ou yahoo (tieuthienma88), teremos um disscus .

Espero que você possa me ajudar. Obrigado!

Por que você está pedindo ajuda????

 

Corretores ECN e Stop Loss

Eu sou novo na programação MQL . Por favor, me ajude .

Estou tentando ter um stop loss com uma ordem de mercado . Qual é a melhor maneira de atingir este objetivo? Eu tentei com o Orderend, mas ele virou

que os corretores da ECN não suportam a interrupção de perdas com ordens do mercado.

Eu procuro e só encontrei informações de que precisamos primeiro ter uma ordem pendente e depois modificar essa ordem .

Eu tentei isso e o problema é que em muitos casos a ordem pendente já é executada antes da ordem de modificação, então a modificação da ordem falha.

Aqui está a ordem de venda para ordem de mercado :

STicket = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,0,0,0,null,MagicNumber,0,red);

Aqui está a ordem de modificação :

OrderSelect(SlTicket, SELECT_BY_TICKET);

OpenPrice = OrderOpenPrice();

{ double SellStopLoss = OpenPrice - (StopLoss * UsePoint);

bool TicketMod1 = OrderModify(SellTicket ,OrderOpenPrice() , SellStopLoss , 0,0);

}

Este método de parada funciona às vezes e às vezes a ordem de marcação já é executada, portanto a ordermodificação falha.

Por favor, ajude-me a conseguir a ordem de parada para os corretores ECN !!!!

 
winston99:
Eu sou novo na programação MQL . Por favor, me ajude .

Estou tentando ter um stop loss com uma ordem de mercado. Qual é a melhor maneira de atingir isso. Eu tentei com o fim das ordens, mas isso virou

que os corretores da ECN não suportam a interrupção de perdas com ordens do mercado.

Eu procuro e só encontrei informações de que precisamos primeiro ter uma ordem pendente e depois modificar essa ordem .

Eu tentei isso e o problema é que em muitos casos a ordem pendente já é executada antes da ordem de modificação, então a modificação da ordem falha.

Aqui está a ordem de venda para ordem de mercado :

STicket = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,0,0,0,null,MagicNumber,0,red);

Aqui está a ordem de modificação :

OrderSelect(SlTicket, SELECT_BY_TICKET);

OpenPrice = OrderOpenPrice();

{ double SellStopLoss = OpenPrice - (StopLoss * UsePoint);

bool TicketMod1 = OrderModify(SellTicket ,OrderOpenPrice() , SellStopLoss , 0,0);

}

Este método de parada funciona às vezes e às vezes a ordem de marcação já é executada, portanto a ordermodificação falha.

Por favor, ajude-me a fazer o pedido de perda de estoque para corretores ECN !!!!

A única maneira de acertar a parada nos corretores ECN é enviar a ordem sem paradas e modificá-la.

Eu uso:

ticket=OrderSend(Symbol(),OP_SELL,lots,Bid, slippage,0,0,comment,magic);

OrderSelect(ticket,SELECT_BY_TICKET);

OrderModify(ticket,OrderOpenPrice(),sltpValue(Ask +StopLoss*Point, StopLoss),sltpValue(Bid- TakeProfit*Point,TakeProfit),0);

e não tem nenhum problema( sltp nos dá valor Sl/TP).

 
g.pociejewski:
A única maneira de acertar a perda de estoque nos corretores de ECN é enviar a ordem sem paradas e modificá-la.

Eu uso:

ticket=OrderSend(Symbol(),OP_SELL,lots,Bid, slippage,0,0,comment,magic);

OrderSelect(ticket,SELECT_BY_TICKET);

OrderModify(ticket,OrderOpenPrice(),sltpValue(Ask +StopLoss*Point, StopLoss),sltpValue(Bid- TakeProfit*Point,TakeProfit),0);

e não têm nenhum problema (sltp nos dá o valor Sl/TP).

como calcular o escorregamento ?

Eu estou passando de 0 para isso pode ser por isso que é um problema.

 

ajuda em zig-zag

Hi,

Estou tentando escrever uma ea baseada em ziguezague e forquilha.

para desenhar a forquilha preciso do preço e do tempo dos últimos 4 ziguezagues

Eu recebo o preço com ICustom()

mas eu não sei como conseguir o Tempo

Por favor, me ajude

obrigado de antemão

----------------------------------------------------------------------

isto é pelo preço...

int n0, n1, n2, n3, i0, i1, i2, i3 = 0;

duplo zig0, zig1, zig2, zig3;

while(n3<4)

{

zig3=iCustom(NULL, 0, "ZigZag", 0, i3);

if(zig3>0) n3+=1;

i3++;

}

while(n2<3)

{

zig2=iCustom(NULL, 0, "ZigZag", 0, i2);

if(zig2>0) n2+=1;

i2++;

}

while(n1<2)

{

zig1=iCustom(NULL, 0, "ZigZag", 0, i1);

if(zig1>0) n1+=1;

i1++;

}

while(n0<1)

{

zig0=iCustom(NULL, 0, "ZigZag", 0, i0);

if(zig0>0) n0+=1;

i0++;

}

...........................................

 

pequena mudança necessária para o indi

Isto é código para caixas diárias, mas eu preciso de algumas mudanças - quero ter uma lacuna onde o mercado tokio fecha e Londres abre.

#janela_do_cartão_indicador de propriedade

int gi_76 = 50;

string gs_80 = "00:00";

string gs_88 = "23:59";

cor exterior Color_Up = Lavanda;

cor externa Color_Down = Trigo;

cor externa Cor_Neutra = CinzaLuz;

bool gi_108 = VERDADEIRO;

duplo gd_112;

int g_color_120 = Vermelho;

vazio init() {

DeleteObjects();

for (int l_count_0 = 0; l_count_0 < gi_76; l_count_0++) CreateObjects("PWT1" + l_count_0, g_color_120);

Comentário("");

}

início nulo() {

int l_datetime_0 = TimeCurrent();

for (int l_count_4 = 0; l_count_4 < gi_76; l_count_4++) {

DrawObjects(l_datetime_0, "PWT1" + l_count_4, gs_80, gs_88);

for (l_datetime_0 = decDateTradeDay(l_datetime_0); TimeDayOfWeek(l_datetime_0) > 5; l_datetime_0 = decDateTradeDay(l_datetime_0)) {

}

}

}

void DrawObjects(int ai_0, string a_name_4, string as_12, string as_20) {

int l_str2time_28 = StrToTime(TimeToStr(ai_0, TIME_DATE) + " " + as_12);

int l_str2time_32 = StrToTime(TimeToStr(ai_0, TIME_DATE) + " " + as_20);

int l_shift_52 = iBarShift(NULL, 0, l_str2time_28);

int l_shift_56 = iBarShift(NULL, 0, l_str2time_32);

int l_shift_60 = iBarShift(NULL, PERÍODO_D1, l_str2time_28);

if (iClose(NULL, PERIOD_D1, l_shift_60) - iOpen(NULL, PERIOD_D1, l_shift_60) > 0.0) gd_112 = iClose(NULL, PERIOD_D1, l_shift_60) - iOpen(NULL, PERIOD_D1, l_shift_60)

else gd_112 = iOpen(NULL, PERÍODO_D1, l_shift_60) - iClose(NULL, PERÍODO_D1, l_shift_60);

if (gd_112 < iATR(NULL, PERÍODO_D1, 7, l_shift_60) / 100.0) g_color_120 = Color_Neutral;

senão {

if (iOpen(NULL, PERIOD_D1, l_shift_60) > iClose(NULL, PERIOD_D1, l_shift_60)) g_color_120 = Color_Down;

senão

if (iClose(NULL, PERIOD_D1, l_shift_60) > iOpen(NULL, PERIOD_D1, l_shift_60)) g_color_120 = Color_Up;

}

double l_high_36 = Alto;

double ld_44 = baixo;

se (!gi_108) {

l_high_36 = 0;

ld_44 = 2.0 * ld_44;

}

ObjectSet(a_name_4, OBJPROP_TIME1, l_str2time_28);

ObjectSet(a_name_4, OBJPROP_PRICE1, l_high_36);

ObjectSet(a_name_4, OBJPROP_TIME2, l_str2time_32);

ObjectSet(a_name_4, OBJPROP_PRICE2, l_d_44);

ObjectSet(a_name_4, OBJPROP_COLOR, g_color_120); ObjectSet(a_name_4, OBJPROP_COLOR, g_color_120);

}

int decDateTradeDay(int ai_0) {

int li_4 = TimeYear(ai_0);

int li_8 = TimeMonth(ai_0);

int li_12 = TimeDay(ai_0);

int l_hour_16 = TimeHour(ai_0);

int l_minute_20 = TimeMinute(ai_0);

li_12--;

if (li_12 == 0) {

li_8..;

se (li_8 == 0) {

li_4--;

li_8 = 12;

}

se (li_8 == 1 || li_8 == 3 ||| li_8 == 5 ||| li_8 == 7 || li_8 == 8 || li_8 == 10 ||| li_8 == 12) li_12 = 31;

se (li_8 == 2) {

if (MathMod(li_4, 4) == 0,0) li_12 = 29;

caso contrário li_12 = 28;

}

se (li_8 == 4 || li_8 == 6 ||| li_8 == 9 ||| li_8 == 11) li_12 = 30;

}

retorno (StrToTime(li_4 + "." + li_8 + "." + li_12 + " " + l_hora_16 + ":" + l_minuto_20));

}

void CreateObjects(string a_name_0, color a_color_8) {

ObjectCreate(a_name_0, OBJ_RECTANGLE, 0, 0, 0, 0, 0, 0);

ObjectSet(a_name_0, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet(a_name_0, OBJPROP_COLOR, a_color_8);

ObjectSet(a_name_0, OBJPROP_BACK, TRUE);

}

void DeleteObjects() {

for (int l_count_0 = 0; l_count_0 < gi_76; l_count_0++) ObjectDelete("PWT1" + l_count_0);

}

void deinit() {

DeleteObjects();

Comentário("");

}

Razão: