Como codificar? - página 274

 

Infelizmente não há como mudar o comentário uma vez que você tenha aberto um pedido. Então se torna um privilégio exclusivo do corretor (e eles o alteram em casos de fechamento parcial) Parece que a metatrader foi capaz de fornecer um recuo parcial de fechamento a alguns corretores apenas através do campo de comentários e então eles decidiram fechá-lo de mudanças para nós (meros mortais) completamente

JohnCrawdford:
Olá,

Existe alguma forma de alterar o OrderComment, após a criação do pedido?

Eu tenho um EA que cria ordens pendentes em pontos-chave que são susceptíveis de serem alcançados, no entanto, às vezes essas ordens têm que ser canceladas/eliminadas devido a movimentos rápidos indesejáveis nos gráficos, portanto não é possível usar o número do bilhete para identificar cada ordem, porque cada ordem de ponto-chave pode ser aberta e cancelada/eliminada várias vezes, Portanto, em vez disso, a EA usa um OrderComment único para identificar cada ordem, mas de vez em quando o computador que executa a EA falha ou a conexão com a Internet falha, e isso altera a identificação da ordem de pontos-chave e, portanto, seria útil alterar o OrderComment para evitar erros causados pela bagunça que é criada após o reinício da EA sem antes terminar a execução anterior.

Muito confuso, certo?

P.S. o número mágico está sendo usado para identificar as ordens criadas pela EA, portanto não posso usar esse número para identificar cada ordem individualmente.

Se alguém pudesse me dizer se há alguma forma de alterar os Comentários de Ordem, eu apreciaria,

Agradecemos antecipadamente.
 

Como ter uma compilação dinâmica em um EA?

Olá mundo!

Eu quero saber como criar uma EA com compilação dinâmica (F5) por exemplo a cada 20 segundos.

Vi que a função F5 foi definida por VK_F5 (Thanks Coders Guru!). Mas como funcionar?

esta é minha EA

**********************************

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

#direitos de propriedade intelectual "Copyright © 2008, Systematic-Forex"

#link da propriedade "http://www.systematic-forex.com"

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 1

#Indicador de propriedade_color1 LightGray // Amarelo

TempoFrame externo int = 5;

/*

help_magic_number = "definir se você vai usar a opção de fechamento 3 - fechamento por número mágico";

external int magic_number = 0; // defina se você vai usar a opção de fechamento 3 - fechamento por número mágico

help_comment_text = "set it if you'll use closing option 4 - closing by comment";

texto_comentário_texto_comentário externo = "";

bool HotKeyOn externo = verdadeiro;

bool externo CtrlOn = verdadeiro;

bool externo ShiftOn = falso;

bool externo AltOn = falso;

HotKeyOn = "A";

*/

#importar "user32.dll

bool GetAsyncKeyState(int nVirtKey);

#importar

#incluir // para MessageBoxA

//---- MessageBox() Bandeiras

#define MB_OK 0x00000000

#define MB_OKCANCEL 0x00000001

#define MB_ABORTRETRYIGNORE 0x00000002

#define MB_YESNOCANCEL 0x00000003

#define MB_YESNO 0x00000004

#define MB_RETRYCANCEL 0x00000005

#define MB_ICONHAND 0x00000010

#define MB_ICONQUESTION 0x00000020

#define MB_ICONEXCLAMATION 0x00000030

#define MB_ICONASTERISK 0x00000040

#define MB_USERICON 0x00000080

#define MB_ICONWARNING MB_ICONEXCLAMATION

#define MB_ICONERROR MB_ICONHAND

#define MB_ICONINFORMATION MB_ICONASTERISK

#define MB_ICONSTOP MB_ICONHAND

#define MB_DEFBUTTON1 0x00000000

#define MB_DEFBUTTON2 0x00000100

#define MB_DEFBUTTON3 0x00000200

#define MB_DEFBUTTON4 0x00000300

#define MB_APPLMODAL 0x00000000

#define MB_SYSTEMMODAL 0x00001000

#define MB_TASKMODAL 0x00002000

#define MB_HELP 0x00004000 // Botão de Ajuda

#define MB_NOFOCUS 0x00008000

#define MB_SETFOREGROUNDO 0x00010000

#define MB_DEFAULT_DESKTOP_ONLY 0x00020000

#define MB_TOPMOST 0x00040000

#define MB_RIGHT 0x00080000

#define MB_RTLREADING 0x00100000

#define KEYEVENTF_EXTENDEDKEY 0x0001

#define KEYEVENTF_KEYUP 0x0002

#define VK_0 48

#define VK_1 49

#define VK_2 50

#define VK_3 51

#define VK_4 52

#define VK_5 53

#define VK_6 54

#define VK_7 55

#define VK_8 56

#define VK_9 57

#define VK_A 65

#define VK_B 66

#define VK_C 67

#define VK_D 68

#define VK_E 69

#define VK_F 70

#define VK_G 71

#define VK_H 72

#define VK_I 73

#define VK_J 74

#define VK_K 75

#define VK_L 76

#define VK_M 77

#define VK_N 78

#define VK_O 79

#define VK_P 80

#define VK_Q 81

#define VK_R 82

#define VK_S 83

#define VK_T 84

#define VK_U 85

#define VK_V 86

#define VK_W 87

#define VK_X 88

#define VK_Y 89

#define VK_Z 90

#define VK_LBUTTON 1 // botão esquerdo do mouse

#define VK_RBUTTON 2 // Botão direito do mouse

#define VK_CANCEL 3 //Control-break processing

#define VK_MBUTTON 4 //Moto de mouse médio (mouse de três botões)

#define VK_BACK 8 //BACKSPACE key

#define VK_TAB 9 //chave VK_TAB

#define VK_CLEAR 12 //CLEAR chave

#define VK_RETURN 13 // chaveENTER

#define VK_SHIFT 16 //SHIFT key

#define VK_CONTROL 17 //CTRL key

#define VK_MENU 18 //ALT key

#define VK_PAUSE 19 // ChavePAUSE

#define VK_CAPITAL 20 //CAPS LOCK LOCK

#define VK_ESCAPE 27 //ESC key

#define VK_SPACE 32 //SPACEBAR

#define VK_PRIOR 33 //PAGE UP key

#define VK_NEXT 34 //PAGE DOWN key

#define VK_END 35 // Chave de END

#define VK_HOME 36 //HOME key

#define VK_LEFT 37 //LEFT ARROW key

#define VK_UP 38 //UP ARROW key

#define VK_RIGHT 39 //Chave de SETE DIREITA

#define VK_DOWN 40 // Chave de seta para baixo

#define VK_PRINT 42 //PRINT key

#define VK_SNAPSHOT 44 //PRINT SCREEN key

#define VK_INSERT 45 //INS key

#define VK_DELETE 46 // Chave VK_DEL

#define VK_HELP 47 //HELP key

#define VK_LWIN 91 //Left Windows key (Microsoft® Natural® keyboard)

#define VK_RWIN 92 //Right Windows key (Teclado natural)

#define VK_APPS 93 //Applications key (Teclado natural)

#define VK_SLEEP 95 //Computer Sleep key

#define VK_NUMPAD0 96 //Numeric keypad 0

#define VK_NUMPAD1 97 //Numeric keypad 1

#define VK_NUMPAD2 98 //Numeric keypad 2

#define VK_NUMPAD3 99 //Numeric keypad 3

#define VK_NUMPAD4 100 //Numeric keypad 4

#define VK_NUMPAD5 101 //Numeric keypad 5

#define VK_NUMPAD6 102 //Numeric keypad 6

#define VK_NUMPAD7 103 //Numeric keypad 7

#define VK_NUMPAD8 104 //Numeric keypad 8

#define VK_NUMPAD9 105 //Numeric keypad 9

#define VK_MULTIPLY 106 //Multiply key

#define VK_ADD 107 //Add key

#define VK_SEPARATOR 108 //Separator key

#define VK_SUBTRACT 109 //Subtract key

#define VK_DECIMAL 110 // Chave decimal

#define VK_DIVIDE 111 //Divide key

#define VK_F1 112 //F1 key

#define VK_F2 113 //F2 chave

#define VK_F3 114 //F3 chave

#define VK_F4 115 //F4 key

#define VK_F5 116 //F5 key

#define VK_F6 117 //F6 key

#define VK_F7 118 //F7 key

#define VK_F8 119 //F8 key

#define VK_F9 120 //F9 chave

#define VK_F10 121 //F10 chave

#define VK_F11 122 //F11 key

#define VK_F12 123 //F12 key

#define VK_F13 124 //F13 key

#define VK_NUMLOCK 144 //NUM LOCK key

#define VK_SCROLL 145 //SCROLL LOCK LOCK

#define VK_LSHIFT 160 //Left SHIFT key

#define VK_RSHIFT 161 //Right SHIFT key

#define VK_LCONTROL 162 //Left CONTROL key

#define VK_RCONTROL 163 //Right CONTROL key

#define VK_LMENU 164 //Left MENU key

#define VK_RMENU 165 //Right MENU key

//---- buffers

duplo tampão[];

int i,j;

//+------------------------------------------------------------------+

//| Função de inicialização do indicador personalizado |

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_LINE);

//SetIndexStyle(0,DRAW_SECTION);

//SetIndexStyle(0,DRAW_ARROW);

//SetIndexStyle(0,DRAW_HISTOGRAM);

//SetIndexStyle(0,DRAW_ZIGZAG);

//SetIndexStyle(0,DRAW_NONE);

SetIndexBuffer(0,Buffer);

SetIndexEmptyValue(0,EMPTY_VALUE);

Comment("\n"+"test_A_sar");

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de desinicialização do indicador do cliente |

//+------------------------------------------------------------------+

int deinit()

{

Comentário("");

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de iteração de indicador personalizada |

//+------------------------------------------------------------------+

int start()

{

limite int;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=0; i<limit; i++)

{

datetime i_Time = iTime(NULL, 0, i);

int j = iBarShift(NULL, TimeFrame, i_Time, bool false);

double sar_m5 = iSAR(NULL, PERÍODO_M5 , 0,02, 0,2, j + 0);

double var_indicateur = sar_m5 ;

/*

//

if(Seconds()== 20)

{

Compiled ou VK_F5

}

if(Seconds()== 40)

{

Compiled ou VK_F5

}

*/

Buffer= sar_m5;

}

retorno(0);

}

//+------------------------------------------------------------------+

**********************************

Cumprimentos teste_a_sar_m5.mq4 teste_a_sar_m5.mq4

Arquivos anexados:
 

Ajuda

estou enfrentando um problema por causa do stop loss, se alguém pode me dar uma resposta a respeito. o problema está em algum gráfico do metatrader o valor da barra de preço mostra em cinco dígitos(1,4545) mas no meu metatrader ele mostra o valor de seis dígitos(1,45456). assim, quando ele tenta colocar o stop loss de acordo com seu sistema, o valor do stop loss se torna de 200 pips a 400 pips. não sei como consertá-lo. estou me expondo muito. explodi minha conta duas vezes devido a este problema.

Obrigado de antemão.

 

estratégia da kelly na gestão do dinheiro do martingale

Qualquer pessoa pode editar isto para a estratégia kelly ou dividir por 10.

meu tamanho de lote é 0,10 quando o patrimônio inicial é $250 isto deve mudar para 0,11 quando o crescimento do patrimônio para $500

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

if(Gestão_do_moeda)

{

switch(AccountType)

{

caso 0: lotsi=NormalizeDouble(MathCeil((risk*AccountEquity())/10000)/10,1); break;

caso 1: lotsi=NormalizeDouble((risk*AccountEquity())/100000,2); pausa;

caso 2: lotsi=NormalizarDuplo((risco*ContaEquidade())/1000,2); pausa;

padrão: lotsi=NormalizeDouble(MathCeil((risk*AccountEquity())/10000)/10,1); pausa;

}

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

Obrigado

 

pergunta do icustom

Eu sei que postei na linha do icustom, mas...

como de acordo com o código guru

double clr = iCustom(NULL,0,"LSMA in Color",14,1500,5,0);

string sclr;

if(clr==1) sclr="Red";

if(clr==2) sclr="Green";

if(clr==3) sclr="Yellow";

como posso obter outro período de tempo com o mesmo tampão?

Observe que o mesmo clr teria um valor diferente para 2 períodos de tempo diferentes.

como contornar isso?

 
khatrisushil:
estou enfrentando um problema por causa do stop loss, se alguém pode me dar uma resposta a respeito. o problema está em algum gráfico do metatrader o valor da barra de preço mostra em cinco dígitos(1,4545) mas no meu metatrader mostra o valor de seis dígitos(1,45456). assim, quando ele tenta colocar o stop loss de acordo com seu sistema, o valor do stop loss se torna de 200 pips a 400 pips. não sei como consertá-lo. estou me expondo muito. explodi minha conta duas vezes devido a este problema.obrigado antecipadamente.

primeira necessidade de detectar o corretor qual dígito

no código que você deve ser capaz de detectar o tipo de dígito, há exemplos suficientes sobre a codificação de dígitos.

Portanto, talvez você queira estudar em algum EA que seja capaz de lidar com corretores de 4 ou 5 dígitos

 

Ajude-me a modificar minha EA no mercado de corretores de execução!

Olá a todos, eu sou um novo na EA, eu criei uma EA com sinal de falsificação:

duplo Buy1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Atual + 1);

duplo Buy1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Atual + 1);

duplo Buy2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Atual + 0);

duplo Buy2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Corrente + 0);

duplo Buy3_1 = iSAR(NULL, 0, 0,005, 0,05, Atual + 1);

duplo Buy3_2 = iSAR(NULL, 0, 0,005, 0,05, Atual + 0);

dupla Compra4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Corrente + 1);

duplo Buy4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Corrente + 0);

dupla Venda1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Corrente + 1);

duplo Sell1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Corrente + 1);

duplo Sell2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Corrente + 0);

duplo Sell2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Corrente + 0);

duplo Sell3_1 = iSAR(NULL, 0, 0,005, 0,05, Corrente + 1);

duplo Sell3_2 = iSAR(NULL, 0, 0,005, 0,05, Corrente + 0);

duplo Sell4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Corrente + 1);

duplo Sell4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Corrente + 0);

if (Buy1_1 = Buy2_2 && Buy3_1 < Buy3_2 && Buy4_1 < Buy4_2) Order = SIGNAL_BUY;

if (Vender1_1 > Vender1_2 && Vender2_1 Vender3_2 && Vender4_1 > Vender4_2) Encomenda = SINAL_SELL;

Mas eu não entendo porque minha EA pode funcionar bem na Execução Instantânea (acho que sim), mas na execução do mercado ela não faz nada, eu sou comerciante no easy-forex, Sua conta demo é execução instantânea meu EA funciona bem, mas na execução ao vivo com o Mercado minha EA não faz nada, quero dizer que ela não pode analisar gráfico naquele MT4, não erro, não fazer nada.

Estou em contato com o suporte easy-forex e eles me dizem porque com diferentes execuções instantâneas e execuções de mercado. Assim, encontro alguém que tem expirência sobre a EA e a negociação. Por favor! me ajude a modificar minha EA.

Muito obrigado!

 
alvintran:
Olá a todos, eu sou um novo na EA, eu liguei uma EA com um sinal de falsificação:

duplo Buy1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Atual + 1);

duplo Buy1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Atual + 1);

duplo Buy2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Atual + 0);

duplo Buy2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Corrente + 0);

duplo Buy3_1 = iSAR(NULL, 0, 0,005, 0,05, Atual + 1);

duplo Buy3_2 = iSAR(NULL, 0, 0,005, 0,05, Atual + 0);

dupla Compra4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Corrente + 1);

duplo Buy4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Corrente + 0);

dupla Venda1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Corrente + 1);

duplo Sell1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Corrente + 1);

duplo Sell2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Corrente + 0);

duplo Sell2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Corrente + 0);

duplo Sell3_1 = iSAR(NULL, 0, 0,005, 0,05, Corrente + 1);

duplo Sell3_2 = iSAR(NULL, 0, 0,005, 0,05, Corrente + 0);

duplo Sell4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Corrente + 1);

duplo Sell4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Corrente + 0);

if (Buy1_1 = Buy2_2 && Buy3_1 < Buy3_2 && Buy4_1 < Buy4_2) Order = SIGNAL_BUY;

if (Vender1_1 > Vender1_2 && Vender2_1 Vender3_2 && Vender4_1 > Vender4_2) Encomendar = SINAL_SELL;

Mas eu não entendo porque minha EA pode funcionar bem na Execução Instantânea (acho que sim), mas na execução do mercado ela não faz nada, eu sou comerciante no easy-forex, Sua conta demo é execução instantânea meu EA funciona bem, mas na execução ao vivo com o Mercado minha EA não faz nada, quero dizer que ela não pode analisar gráfico naquele MT4, não erro, não fazer nada.

Estou em contato com o suporte easy-forex e eles me dizem porque com diferentes execuções instantâneas e execuções de mercado. Assim, encontro alguém que tem expirência sobre a EA e a negociação. Por favor! me ajude a modificar minha EA.

Muito obrigado!

[lang=pl]Acho que isso pode ser um problema com o SL/TP. Por favor, mostre-me seu código, ou parte

para onde você envia os pedidos.

Abraço,

Grzesiek[/lang]

 
g.pociejewski:
[lang=pl]Penso que isso pode ser um problema com SL/TP. Por favor, mostre-me seu código, ou parte

para onde você envia os pedidos.

Abraço,

Grzesiek[/lang]

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 uma tentativa de compra, não foi uma versão de teste, não foi limitada.

Por favor! ajuda

 

Acréscimo de prazos e obtenção de amortecedores

mtuppers:

double clr = iCustom(NULL,0,"LSMA in Color",14,1500,5,0);

string sclr;

if(clr==1) sclr="Red";

if(clr==2) sclr="Green";

if(clr==3) sclr="Yellow";

como posso obter outro período de tempo com o mesmo tampão?

Observe que o mesmo clr teria um valor diferente para 2 períodos de tempo diferentes.

como contornar isso?

Oi Mtuppers,

Período de tempo atual original:

duplo clr = iCustom(NULL,0, "LSMA in Color",14,1500,5,0);

Adicione o período de tempo desejado e mude o nome da variável para torná-la diferente (clr e clr2):

double clr2 = iCustom(NULL,Period_H1, "LSMA in Color",14,1500,5,0); // Period_H1 Time Frame

No indicador "LSMA in Color" - Há 3 buffers para as cores, não apenas um, portanto você pode usar 3 declarações iCustom para obtê-las todas.

Aqui estão os números dos buffers:

SetIndexBuffer(2,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexBuffer(0,ExtMapBuffer3);

SetIndexBuffer(3,soma);

SetIndexBuffer(4,wt);

SetIndexBuffer(5,clr);

* Observe em seu exemplo, você está usando Buffer 0, de modo que na verdade você está recebendo apenas uma cor em ExtMapBuffer3. O buffer "clr" é o Buffer 5.

Aqui estão as atribuições do buffer de cores no indicador:

ExtMapBuffer3[shift] = wt[shift]; //vermelho

ExtMapBuffer2[shift] = wt[shift]; //verde

ExtMapBuffer1[shift] = wt[shift]; //amarelo

Espero que isto ajude,

Robert

Razão: