Spread-Handel in Meta Trader - Seite 159

 

Ich danke Ihnen für die Informationen.

Was ich nicht verstehe, ist Folgendes. Wenn ich das mit MarketInfo() erhaltene Datum verwende,

 int exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
 int exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);

Wie kann eine Bedingung festgelegt werden, die die Eröffnung von Positionen innerhalb von 3 Wochen verbietet? Und dementsprechend wäre es, wenn ich es richtig verstehe, sinnvoll, die bestehenden Positionen zu schließen. Je näher das Verfallsdatum rückt, desto größer ist das Risiko höherer Gewalt.

 
leonid553:

Hier ist ein Skript, das die Geld-Brief-Spanne verfolgt (speziell für Maklergeschäfte).

Irgendwo oben in der Mitte des Threads gibt es die gleiche Version, aber als Indikator.

Mein Skript verbraucht erhebliche CPU-Ressourcen (-schedule), daher ist es besser, es kurz vor dem Öffnen/Schließen einzufügen und dann sofort zu entfernen.

6NZ0, M1

Wie wäre es, wenn Sie das Beispiel von goldtrader mit dem Code aus Ihrem Skript verwenden?

    //Задаем цены аск и бид тикера
    Ask_Tiker = MarketInfo(_tiker,MODE_ASK);
    Bid_Tiker = MarketInfo(_tiker,MODE_BID);
Wie ein Filter in einem EA. Und Sie brauchen kein Drehbuch.
 
Vitya:

Ich danke Ihnen für die Informationen.

Was ich nicht verstehe, ist Folgendes. Wenn ich das mit MarketInfo() erhaltene Datum verwende,

Wie kann eine Bedingung festgelegt werden, die die Eröffnung von Positionen innerhalb von 3 Wochen verbietet? Und dementsprechend wäre es, wenn ich es richtig verstehe, sinnvoll, die bestehenden Positionen zu schließen. Je näher dieses Datum rückt, desto größer ist das Risiko der höheren Gewalt.

es ist möglich, eine Warnung über den bevorstehenden Ablauf zu erstellen, und im Expert Advisor ist es notwendig, jeden Handel mit dem maximal zulässigen Spread zu vergleichen
 
Vitya:

Und wenn Sie die von goldtrader vorgeschlagene Konstruktion mit dem Code aus Ihrem Skript verwenden

Dasselbe wie der Filter im Expert Advisor. Und das Skript ist nicht erforderlich.


Nun, das ist offensichtlich! Das Skript wird nur für den manuellen Handel benötigt.

Sie können auch die Schluss-/Eröffnungsbedingungen nach Ticker in Ihren Expert Advisor einfügen. Aber es gibt eine Komplikation. Die Arbeit des EA muss in einer Schleife erfolgen (und das bedeutet, dass der Prozessor überlastet wird), sonst ist dieser Filter für Verträge mit geringer Liquidität absolut unbrauchbar.

 

Guten Tag, meine Frage trifft genau den Punkt.

Der Spread-Indikator ermöglicht in seinen EIGENSCHAFTEN die Festlegung der Namen der Instrumente.

extern string Symbol_1 = "GCG1";
extern string Symbol_2 = "SIF1";

Wie schreibe ich

double iCustom(

string symbol, int timeframe,

- Welches Werkzeug soll ich wählen - das erste oder das zweite? Oder einer von ihnen?



 
Rita:


es gibt keine Möglichkeit, sie hier anzuwenden

Sie müssen den Code in den Expert Advisor einbetten und die Bedingung dort angeben

//----
extern string Simbol1 = "ESZ0"; extern double k1 =1;
extern string Simbol2 = "NQZ0"; extern double k2 =1;
extern double lot =1;
//----
extern double maxSpred =30;
extern int MinTimeExp =1800000;

int exp1,exp2,v1,v2;
//+------------------------------------------------------------------+
double StoimPunkt(string B){return(MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT)));}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
double sred(int typ,string B)
{double j;RefreshRates();
if(typ==0)j=((MarketInfo(B+"#I",MODE_ASK)-MarketInfo(B,MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(typ==1)j=((MarketInfo(B,MODE_BID)-MarketInfo(B+"#I",MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(j<0)j=0;return(j);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
int start()
{
exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);
v1 =MarketInfo(Simbol1,MODE_TRADEALLOWED);
v2 =MarketInfo(Simbol2,MODE_TRADEALLOWED);

if((sred(0,Simbol1)*lot*k1+sred(1,Simbol1)*lot*k1<maxSpred)&&(sred(0,Simbol2)*lot*k2+sred(1,Simbol2)*lot*k2<maxSpred)&&
(TimeCurrent()+MinTimeExp<exp1)&&(TimeCurrent()+MinTimeExp<exp2)&&(v1 ==1)&&(v2 ==1))
{



код советника




}
}
//+------------------------------------------------------------------+

 
Ich verstehe, danke.
 
forex-k:

es gibt keine Möglichkeit, sie hier anzuwenden

Sie müssen den Code in den Expert Advisor einbetten und die Bedingung dort angeben

//----
extern string Simbol1 = "ESZ0"; extern double k1 =1;
extern string Simbol2 = "NQZ0"; extern double k2 =1;
extern double lot =1;
//----
extern double maxSpred =30;
extern int MinTimeExp =1800000;

int exp1,exp2,v1,v2;
//+------------------------------------------------------------------+
double StoimPunkt(string B){return(MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT)));}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
double sred(int typ,string B)
{double j;RefreshRates();
if(typ==0)j=((MarketInfo(B+"#I",MODE_ASK)-MarketInfo(B,MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(typ==1)j=((MarketInfo(B,MODE_BID)-MarketInfo(B+"#I",MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(j<0)j}0;return(j);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
int start()
{
exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);
v1 =MarketInfo(Simbol1,MODE_TRADEALLOWED);
v2 =MarketInfo(Simbol2,MODE_TRADEALLOWED);

if((sred(0,Simbol1)*lot*k1+sred(1,Simbol1)*lot*k1<maxSpred)&&(sred(0,Simbol2)*lot*k2+sred(1,Simbol2)*lot*k2<maxSpred)&&
(TimeCurrent()+MinTimeExp<exp1)&&(TimeCurrent()+MinTimeExp<exp2)&&(v1 ==1)&&(v2 ==1))
{



код советника




}
}
//+------------------------------------------------------------------+



Ich danke Ihnen nochmals. Sie beantwortet auch meine Fragen.
 

Informationen zum Nachdenken...

MC - YM (4 ^ 9)

 
leonid553:

Informationen zum Nachdenken...

MC - YM (4 ^ 9)


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