Wie programmiert man? - Seite 268

 

ein anderes Problem

also habe ich die Crossed-Funktion mit einem MA_04_1H > MA_14_1H anstelle des Kreuzes == 1 überarbeitet, und so weiter... und es hat das Problem in der Regel behoben... Aber ich habe mich gefragt, wie ich Trades wie buy,close,buy,close,buy,close,sell,close,... herausfiltern kann. Es frisst den Saldo Cent für Cent auf, wie -0,17,-0,18,-0,21,-0,15, und so weiter....

Jetzt versuche ich gerade, etwas zu implementieren, das, wenn ich ein kleineres Lot kaufe und es profitiert, ich diese Order schließe und eine neue größere eröffne, bis der Crossing passiert... aber das obige Problem kann ich nicht lösen...

Weiß jemand, wie man diese kleinen, nutzlosen Trades herausfiltern kann?

 

brauche afl für diesen Code

Hallo ,

ich benötige die afl für diesen Code

#Eigenschaft indicator_separate_window

#Eigenschaft indicator_buffers 8

#Eigenschaft indicator_color1 C'0x66,0xB3,0xFF'

#Eigenschaft indicator_color2 DodgerBlue

#Eigenschaft indicator_color3 C'0x00,0x67,0xCE'

#Eigenschaft indicator_color4 Weiß

#Eigenschaft indicator_color5 C'0xFF,0x33,0x33'

#Eigenschaft indicator_color6 C'0xC4,0x00,0x00'

#Eigenschaft indicator_color7 C'0x8C,0x00,0x00'

#Eigenschaft indicator_color8 C'0x82,0x24,0x00'

extern int Periode = 30;

extern bool invert_strength = FALSE;

externer String CurrencyPair = "";

extern string NOTE0 = "Währungspaar in Großbuchstaben eingeben";

externer string NOTE1 = "wie EURUSD";

extern string NOTE2 = "für aktuelles Symbol leer lassen";

externer string NOTE3 = "wenn Sie ein Minikonto haben";

externer string NOTE4 = "fügen Sie ein \"m\" hinzu, z.B. EURUSDm ";

double g_ibuf_132[];

double g_ibuf_136[];

double g_ibuf_140[];

double g_ibuf_144[];

double g_ibuf_148[];

double g_ibuf_152[];

double g_ibuf_156[];

double g_ibuf_160[];

double gda_unused_164[];

int init() {

SetIndexPuffer(0, g_ibuf_132);

SetIndexPuffer(1, g_ibuf_136);

SetIndexBuffer(2, g_ibuf_140);

SetIndexBuffer(3, g_ibuf_144);

SetIndexBuffer(4, g_ibuf_148);

SetIndexBuffer(5, g_ibuf_152);

SetIndexBuffer(6, g_ibuf_156);

SetIndexBuffer(7, g_ibuf_160);

SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 5, C'0x66,0xB3,0xFF');

SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue);

SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, C'0x00,0x67,0xCE');

SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, White);

SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, C'0xFF,0x33,0x33');

SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00');

SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00');

SetIndexStyle(7, DRAW_HISTOGRAM, EMPTY, 5, C'0x82,0x24,0x00');

for (int li_0 = 0; li_0 < 8; li_0++) SetIndexLabel(li_0, NULL);

if (CurrencyPair == "") CurrencyPair = Symbol();

if(iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol();

IndicatorShortName(CurrencyPair + "(" + Periode + ")");

return (1);

}

int deinit() {

return (0);

}

int start() {

double ld_8;

int li_0 = IndicatorCounted();

if (li_0 < 0) return (-1);

wenn (li_0 > 0) li_0--;

for (int li_4 = Bars - li_0; li_4 >= 0; li_4--) {

ld_8 = iRSI(CurrencyPair, 0, Periode, PRICE_CLOSE, li_4);

if (invert_strength == TRUE) ld_8 -= 2.0 * (ld_8 - 50.0);

wenn (ld_8 <= 45,0) {

wenn (ld_8 42,0) drawblock(0, 0, 0, 0, 5, 0, 0, 0, 0, li_4);

sonst {

wenn (ld_8 38.0) drawblock(0, 0, 0, 0, 0, 5, 0, 0, li_4);

sonst {

if (ld_8 35.0) drawblock(0, 0, 0, 0, 0, 0, 5, 0, li_4);

sonst drawblock(0, 0, 0, 0, 0, 0, 0, 5, li_4);

}

}

} else {

wenn (ld_8 >= 55.0) {

if (ld_8 > 55.0 && ld_8 < 57.0) drawblock(5, 0, 0, 0, 0, 0, 0, 0, li_4);

sonst {

if (ld_8 >= 58.0 && ld_8 < 60.0) drawblock(0, 5, 0, 0, 0, 0, 0, 0, li_4);

sonst drawblock(0, 0, 5, 0, 0, 0, 0, 0, li_4);

}

} else drawblock(0, 0, 0, 5, 0, 0, 0, 0, li_4);

}

}

return (0);

}

void drawblock(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24, int ai_28, int ai_32) {

g_ibuf_132[ai_32] = ai_0;

g_ibuf_136[ai_32] = ai_4;

g_ibuf_140[ai_32] = ai_8;

g_ibuf_144[ai_32] = ai_12;

g_ibuf_148[ai_32] = ai_16;

g_ibuf_152[ai_32] = ai_20;

g_ibuf_156[ai_32] = ai_24;

g_ibuf_160[ai_32] = ai_28;

}

oder erklären Sie mir bitte die Logik dahinter

danke

kr

 

wie man NICHT kaufen, schließen, kaufen, schließen oder verkaufen, schließen, verkaufen, schließen...

Bitte... ich muss wirklich wissen, wie man diese unrentablen Geschäfte vermeiden kann...

 

Dringende Hilfe. Indikator in EA umwandeln (Auto Trader)

Ich bin ein Programmierer, aber ein Neuling in der mql4 Programmierung.

Ich versuche, einen EA (Auto Trader) für einen Indikator zu erstellen.

Ich habe den Indikator beigefügt. Dieser Indikator gibt gute Trendsignale.

Nun möchte ich einen Autotrader für diese Trendsignale erstellen.

Algorithmus:

==================================================

Wenn ABWÄRTS-SIGNAL dann SELL-Order öffnen und vorherige BUY-Order schließen

Wenn UP SIGNAL, dann öffnen Sie eine BUY Order und schließen Sie die vorherige SELL Order

weiter ....

==================================================

Ich möchte nur den manuellen Handel zum automatischen Handel bezüglich dieses Indikators.

Kann mir jemand helfen? Ich habe versucht, aber nicht das Ergebnis erhalten

Ich denke, es wäre ein guter Autohändler. Bitte helfen Sie mir.

Dateien:
 

einfache Frage, kann die Antwort nicht finden...

Kann mir jemand sagen, warum das funktioniert?

Preis = MarketInfo("GBPJPY",MODE_ASK);

und dies nicht (wenn Symbol ein Array von Strings ist und der 9. Eintrag "GBPJPY" ist):

price = MarketInfo(symbol[9],MODE_ASK);

??

 
TomthebombNL:
Kann mir jemand sagen, warum das funktioniert:

Preis = MarketInfo("GBPJPY",MODE_ASK);

und dies funktioniert nicht (wenn Symbol ein Array von Strings ist und der 9. Eintrag "GBPJPY" ist):

price = MarketInfo(symbol[9],MODE_ASK);

??

Nach den von Ihnen gegebenen Informationen bin ich mir zu 100 % sicher, dass dies funktionieren sollte, und ich habe gerade einen kurzen Test durchgeführt, um dies zu beweisen. Es muss etwas anderes sein, das mit Ihrem Code nicht stimmt.

 
codersguru:
jdun,

Der einfachste Weg, den Code umzukehren (Verkaufen zu Kaufen & Kaufen zu Verkaufen) ist das Ändern:

if(signal0 < signal1 ) GlobalVariableSet("TM0",1);

if(signal0 > signal1) GlobalVariableSet("TM0",0);[/CODE]

To:

[CODE]if(signal0 > signal1 ) GlobalVariableSet("TM0",1);

if(signal0 < signal1) GlobalVariableSet("TM0",0);

schön! Vielen Dank für diese Information.

 

Ich denke, höchstwahrscheinlich haben Sie Ihr Array nicht als String definiert.

 

Wenn "GBPJPY" das 9. Element in einem Array ist, ist sein Index in der Mql-Notation 8 und nicht 9 (in der Mql-Notation hat das 1. Element eines Arrays den Index 0), so dass Sie in diesem Fall diese Form verwenden sollten:

price = MarketInfo(symbol[8],MODE_ASK);

Vielleicht ist das das Problem?

TomthebombNL:
Kann mir jemand sagen, warum das funktioniert?

Preis = MarketInfo("GBPJPY",MODE_ASK);

und dies funktioniert nicht (wenn Symbol ein Array von Strings ist und der 9. Eintrag "GBPJPY" ist):

price = MarketInfo(symbol[9],MODE_ASK);

??
 

Ich habe die Zahl richtig verstanden, aber vielleicht habe ich es nicht richtig erklärt, es ist der 10. Seltsamerweise funktioniert das:

hoch = iHoch(symbol[9], ...)

das gibt mir den Höchststand. Meine Deklaration ist:

string symbol[] oder sollte es wie string[] symbol[] sein?

Wenn ich versuche, es mit Alert(symbol[9]) zu drucken, gibt es auch ein leeres Feld, ein ziemlich seltsames Problem... aber trotzdem danke für Ihre Vorschläge.

Dies ist mein Code, ich benutze alpari 5 digit broker (der Alarm gibt mir Null aus irgendeinem Grund):

double high,low,price,distance, plaats;

int i,j,ticket, waarde;

string symbol[];

string zoekplaatssymbol;

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

//| Experten-Initialisierungsfunktion |

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

int init()

{

//----

//----

return(0);

}

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

//| Experten-Deinitialisierungsfunktion |

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

int deinit()

{

//----

//----

return(0);

}

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

//| expert start function |

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

int start()

{

//----

double usd=0.0;

double chf=0.0;

double eur=0.0;

double gbp=0.0;

double aud=0.0;

double cad=0,0;

double jpy=0,0;

double nzd=0.0;

symbol[21] = {"USDCHF" , "EURUSD" , "GBPUSD" , "USDJPY" , "AUDUSD" , "USDCAD" , "EURGBP" , "EURCHF" , "EURJPY" , "GBPJPY" , "GBPCHF" , "EURAUD" , "NZDUSD" , "CHFJPY" ,

"EURCAD" , "AUDCAD" , "AUDJPY" , "CADJPY" , "EURNZD" , "AUDNZD" , "NZDJPY"};

int total=OrdersTotal();

//zoekplaatssymbol = symbol[9];

// waarde = zoekplaats(zoekplaatssymbol);

Preis = MarketInfo(symbol[9],MODE_ASK);

Alert(price);

}

Grund der Beschwerde: