Come codificare? - pagina 221

 

Per favore aiutatemi a spostare la linea.

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

L'indicatore funziona come è stato progettato. Suona l'allarme quando il prezzo tocca la linea, ma voglio espandere su questo. Voglio questo:

Copia l'indicatore qui sotto poi fai queste 2 modifiche:

modifica #1:

creare una linea stoploss1 (c'è già) e spostare la linea dove si trova il mio stop loss se non ho uno stop loss impostato spostare la linea di 500 pips per evitare che l'allarme venga attivato.

modifica #2:

Creare una linea takeprofit1 (questo non è nel codice) e spostare la linea dove si trova il mio stop loss se non ho uno stop loss impostato spostare la linea a 502 pip per evitare che l'allarme venga attivato. Usare anche un diverso allarme sonoro.

Praticamente l'indicatore controllerà quali sono i miei stop loss e take profit e si muoverà ai rispettivi prezzi, se lo stop loss e il take profit non sono impostati, sposterà le linee a 500, 502 pip di distanza.

In questo modo quando il mercato ha colpito il mio profitto o stop loss il suono mi farà sapere quando im non guardando metatrader o avere la finestra di ridurre al minimo, e posso tornare indietro e vedere quale altro set up posso avere.

Grazie mille per il tuo aiuto fratello.

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

//| HLine Alert.mq4 |

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

#proprietà copyright ""

#proprietà indicator_chart_window

extern string LineName="Stoploss1";

extern color LineColor=Rosso;

extern int LineStyle=STYLE_SOLID;

extern int AlertPipRange=1;

extern string AlertWav="Alert2.wav

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

//|Funzione di inizializzazione dell'indicatore personalizzata

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

int init()

{

//---- indicatori

//----

return(0);

}

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

//| Funzione di deinizializzazione dell'indicatore personalizzato |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Funzione di iterazione dell'indicatore personalizzato |

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

int start()

{

int counted_bars=IndicatorCounted();

ObjectCreate(LineName, OBJ_HLINE, 0, 0, 0, Bid);

ObjectSet(LineName, OBJPROP_STYLE, LineStyle);

ObjectSet(LineName, OBJPROP_WIDTH, 2);

ObjectSet(LineName, OBJPROP_COLOR, LineColor);

double val = ObjectGet( LineName, OBJPROP_PRICE1);

se (Bid-AlertPipRange*Point = val) PlaySound(AlertWav);

//----

//----

return(0);

}

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

 
increase:
Ecco una versione MTF che ho fatto per te con l'allarme

Ciao Aumentare ...

...ho scaricato il tuo indicatore (con allerta) e l'ho corretto...perché...ho un piccolo errore...

una volta che la freccia pop up mostra l'etichetta verso il basso e viceversa ...

quindi vorrei sapere come unire entrambi in uno..e come impostare l'invio dell'allarme a

e-mail in tutti i TF.

che u in anticipo

File:
afstar.mq4  6 kb
 

per favore ho bisogno di aiuto

per favore qualcuno può aiutarmi con la scrittura di codici che voglio sviluppare un robot per una strategia di scalping che ho scoperto

 

Ragazzi,

ecco un semplice codice per l'allarme sull'incrocio della media mobile e la chiusura come da immagine allegata,

Penso che ci sia qualcosa di sbagliato con l'istruzione if, si prega di rivedere,

grazie in anticipo.

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

#property copyright "Non"

#property link "non"

#property indicator_chart_window

extern int Time_Frame = PERIOD_M5;

extern int MA_Period = 20;

extern int MA_Method = MODE_SMA;

extern int MA_applied_to = PRICE_CLOSE;

extern bool Enabled = true;

extern int WhatCorner=2;

int PrevAlertTime=0;

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

//----

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

ObjectDelete("Alart_Condition");

ObjectDelete("Alart_Setup");

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int BarsCount=IndicatorCounted();

if (Enabled == false)

{

string Alart_Condition = "Alart Disabled";

ObjectCreate("Alart_Condition", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Alart_Condition", Alart_Condition , 12, "Comic Sans MS", Red);

ObjectSet("Alart_Condition", OBJPROP_CORNER, WhatCorner);

ObjectSet("Alart_Condition", OBJPROP_XDISTANCE, 1);

ObjectSet("Alart_Condition", OBJPROP_YDISTANCE, 1);

return (0);

}

// if (!Enabled) return (0);

if (Enabled == true)

{

string Alart_Setup = (GetMethodText1(MA_Method)+ (DoubleToStr(MA_Period,0))+")"+ GetMethodText(MA_applied_to)) ;

ObjectCreate("Alart_Setup", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Alart_Setup", Alart_Setup , 12, "Comic Sans MS", Red);

ObjectSet("Alart_Setup", OBJPROP_CORNER, WhatCorner);

ObjectSet("Alart_Setup", OBJPROP_XDISTANCE, 1);

ObjectSet("Alart_Setup", OBJPROP_YDISTANCE, 1);

}

// if close of i < iMA && iMA < close of i-1 && last time alart .. then sell

for (int i=Bars;i>=1;i--)

{

double m = iMA(NULL,Time_Frame,MA_Period,0,MA_Method,MA_applied_to,i);

if ((CurTime() - PrevAlertTime > 20) && Close < m && m < Close)

{

Alert ("Sell " + Symbol());

PlaySound ("alert.wav");

PrevAlertTime=CurTime();

return(-1);

}

// if close of i-1 < iMA && iMA < close of i && last time alart .. then buy

if ( (CurTime() - PrevAlertTime > 20) && Close < m && m < Close )

{

Alert ("Buy "+ Symbol());

PlaySound ("alert.wav");

PrevAlertTime=CurTime();

return(-1);

}

}

//----

//----

return(0);

}

string GetMethodText1(int MA_Method)

{ switch(MA_Method)

{

case 0 : return("SMA("); break;

case 1 : return("EMA("); break;

case 2 : return("SMMA("); break;

case 3 : return("LWMA("); break; }

}

string GetMethodText(int MA_applied_to)

{

switch(MA_applied_to)

{case 0: return("C"); break; // Close

case 1: return("O"); break; // Open

case 2: return("H"); break; // High

case 3: return("L"); break; } // Low

}

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

File:
q.gif  10 kb
 

Aiuto con lo script

Ciao...

Sono un principiante assoluto nella codifica di questo, quindi mi chiedevo se qualcuno potesse dire cosa c'è di sbagliato in questo script...

Continuo a ricevere un errer 4109 ERR_TRADE_NOT_ALLOWED... il messaggio in MT4 è "Invalid price 1.48770000 for OrderSend function" Ma non riesco a capire perché... Quindi per favore aiutatemi qui...

int start()

{

double High1;

double Low1;

double TP = 50;

double SL = 50;

int Lots = (((AccountBalance()/15)/50)/10);

//----

{

High1 = iHigh(NULL, PERIOD_D1, 0);

Low1 = iLow(NULL, PERIOD_D1, 0);

double Buy = High1*Point;

double Sell= Low1*Point;

Print(Buy);

Print(Sell);

}

//----

{

OrderSend(Symbol(),OP_BUYSTOP,Lots,Buy,NULL,Ask-SL*Point,Ask+TP*Point);

OrderSend(Symbol(),OP_SELLSTOP,Lots,Sell,3,Bid+SL*Point,Bid-TP*Point);

Alert (GetLastError());

}

//----

return(0);

}
 

Aiuto

Almeno ora ho capito il mio problema di commercio non consentito.

Ma ora continuo a ricevere un errore"fermate non valide"... qualcuno che può illuminarmi qui...? Non capisco davvero cosa c'è di sbagliato qui ...

Grazie in anticipo...

int start()

{

double High1;

double Low1;

int TP = 50;

int SL = 50;

int Lots = (((AccountBalance()/15)/50)/10);

//----

{

High1 = iHigh(NULL, PERIOD_D1, 0);

Low1 = iLow(NULL, PERIOD_D1, 0);

Print(High1);

Print(Low1);

}

//----

{

OrderSend(Symbol(),OP_BUYSTOP,Lots,High1,NULL,Ask-SL*Point,Ask+TP*Point);

OrderSend(Symbol(),OP_SELLSTOP,Lots,Low1,NULL,Bid+SL*Point,Bid-TP*Point);

Alert (GetLastError());

}

//----

return(0);

}
 

Limitare il numero di compravendite a....

Sto cercando di aggiungere del codice ad un EA che limiterà il numero di trade che fa al giorno a solo due (2). Solo UN trade lungo e UN trade corto al giorno. Questo è il codice che ho finora, ma su un back test non funziona.

Potete aiutarmi?

datetime LongTrade=0;

datetime ShortTrade=0;

if(countOrders(OP_BUY,magic)==0 && LongTrade!=iTime(NULL,PERIOD_D1,0))

{

OrderSend(Symbol(),OP_BUY,lots,Ask,0,Bid-stop_loss*Point,lTP,comment + "lTP",magic);

LongTrade=iTime(NULL,PERIOD_D1,0);

return(0);

}

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

if(countOrders(OP_SELL,magic)==0 && ShortTrade!=iTime(NULL,PERIOD_D1,0))

{

OrderSend(Symbol(),OP_SELL,lots,Bid,0,Ask+stop_loss*Point,sTP,comment + "sTP",magic);

ShortTrade=iTime(NULL,PERIOD_D1,0);

return(0);

}

GRAZIE.

 
ForExTyro:
Sto cercando di aggiungere del codice a un EA che limiterà il numero di compravendite che fa al giorno a solo due (2). Solo UN trade lungo e UN trade corto al giorno. Questo è il codice che ho finora, ma su un back test non funziona, potete aiutarmi?

Sostituisci

datetime LongTrade=0;

datetime ShortTrade=0;

a

static datetime LongTrade=0;

static datetime ShortTrade=0;

 

Aiuto con questo EA e indicatore per favore

Im a Newbe so Hi, as you can see Im having no luck with this.

Ho questo indicatore (istogramma/guarda indietro di 300 barre ma ridipinge MOLTO. Qualcuno può suggerire un indicatore che non ancora farà lo stesso job.this è, se potete aiutare che sarebbe fantastico

Saluti CharlieC

histoind.mq4

#proprietà indicator_chart_window

#proprietà indicator_buffers 2

#proprietà indicatore_colore1 Rosso

#proprietà indicatore_colore2 verde prato

stringa gs_unused_124 = "";

bool gi_unused_132 = FALSE;

extern int RISK = 3;

extern int CountBars = 300;

double g_ibuf_144[]

double g_ibuf_148[];

int init() {

IndicatorBuffers(2);

SetIndexStyle(0, DRAW_ARROW);

SetIndexArrow(0, 234);

SetIndexStyle(1, DRAW_ARROW);

SetIndexArrow(1, 233);

SetIndexBuffer(0, g_ibuf_144);

SetIndexBuffer(1, g_ibuf_148);

Commento();

return (0);

}

int start() {

int li_12;

double ld_52;

double ld_60;

doppio ld_68;

doppio ld_76;

doppio ld_84;

doppio ld_92;

doppio ld_100;

doppio lda_108[50000];

SetIndexDrawBegin(0, Bars - CountBars + 11 + 1);

SetIndexDrawBegin(1, Bars - CountBars + 11 + 1);

int l_ind_counted_8 = IndicatorCounted();

int li_20 = RISK * 2 + 3;

double ld_36 = RISK + 67;

double ld_44 = 33 - RISK;

int l_periodo_24 = li_20;

se (Bars <= 12) ritorno (0);

se (l_ind_counted_8 < 12) {

for (int li_0 = 1; li_0 <= 0; li_0++) g_ibuf_144[CountBars - li_0] = 0.0;

for (li_0 = 1; li_0 <= 0; li_0++) g_ibuf_148[CountBars - li_0] = 0.0;

}

for (int li_4 = CountBars - 11 - 1; li_4 >= 0; li_4--) {

li_12 = li_4;

ld_76 = 0.0;

ld_84 = 0.0;

for (li_12 = li_4; li_12 <= li_4 + 9; li_12++) ld_84 += MathAbs(High[li_12] - Low[li_12]);

ld_76 = ld_84 / 10.0;

li_12 = li_4;

ld_68 = 0;

mentre (li_12 < li_4 + 9 && ld_68 < 1.0) {

se (MathAbs(Open[li_12] - (Close[li_12 + 1])) >= 2,0 * ld_76) ld_68 += 1,0;

li_12++;

}

se (ld_68 >= 1,0) ld_92 = li_12

altrimenti ld_92 = -1;

li_12 = li_4;

ld_68 = 0;

while (li_12 < li_4 + 6 && ld_68 < 1.0) {

se (MathAbs(Close[li_12 + 3] - Close[li_12]) >= 4,6 * ld_76) ld_68 += 1,0;

li_12++;

}

se (ld_68 >= 1,0) ld_100 = li_12

altrimenti ld_100 = -1

se (ld_92 > -1.0) l_periodo_24 = 3

altrimenti l_periodo_24 = li_20;

se (ld_100 > -1,0) l_periodo_24 = 4

altrimenti l_periodo_24 = li_20;

ld_52 = 100 - MathAbs(iWPR(NULL, 0, l_periodo_24, li_4));

lda_108[li_4] = ld_52;

g_ibuf_144[li_4] = 0;

g_ibuf_148[li_4] = 0;

ld_60 = 0;

se (ld_52 < ld_44) {

for (int li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) {

}

se (lda_108[li_4 + li_16] > ld_36) {

ld_60 = High[li_4] + ld_76 / 2.0;

g_ibuf_144[li_4] = ld_60;

}

}

se (ld_52 > ld_36) {

for (li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) {

}

se (lda_108[li_4 + li_16] < ld_44) {

ld_60 = Basso[li_4] - ld_76 / 2.0;

g_ibuf_148[li_4] = ld_60;

}

}

}

return (0);

}

File:
histoind.mq4  3 kb
 

CharlieC

Già che ci sono, qualcuno può mettere anche un allarme sonoro (Darn Cheeky Ay, per un Newbeeee) questa roba ti fa fare cose divertenti

Scusa

CharlieC

Motivazione: