[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 697

 
rensbit:
Der Winkel des Ankers gibt an, aus welchem Winkel die Position des Objekts im Fenster gezählt wird. Die Winkel werden im Uhrzeigersinn von links nach rechts gezählt.

Wenn ich an der rechten unteren Ecke einraste, sollte ich dann negative Koordinaten einstellen?
 
valenok2003:

Wenn ich an der rechten unteren Ecke einraste, muss ich dann negative Koordinaten eingeben?
Nein, positive Koordinaten, das Terminal errechnet den gewünschten Punkt von selbst. Zum Beispiel: 15 Pixel von der 2. Ecke
 
Azerus:

Bitte beraten Sie mich,

Um die Anzahl der kontinuierlichen Ereignisse zu berechnen (z. B. die Anzahl der Balken in einer Serie, in der der Schlusskurs höher ist als der Eröffnungskurs und umgekehrt), konnte ich nur Folgendes herausfinden:

Zwei Fragen (falls das oben Gesagte Sinn macht): (1) wie kann ich den Zählerstand zurücksetzen, wenn die kontinuierliche Reihe gestoppt wurde; und (2) wie schreibe ich Buffer[i] korrekt - d. h. wie kann ich das Ergebnis selbst "sehen"?

Wenn z.B. der Indikator für einen bestimmten Balken "-3" anzeigt, bedeutet dies, dass es sich um den dritten Balken in Folge handelt, der unterhalb der Eröffnung geschlossen hat; wenn der nächste Balken über der Eröffnung schließt, zeigt der Indikator "1" an ......

int i=Bars-1

while (i > 0) {

int x=0;

int y=0;

if ( Close[i] > Open[i] ) { x++ ;

Buf [i]= x; }

if (Close[i] < Open[i] ) { y-- ;

Buf2[i] =y ; }

i--;

}

 
rensbit:
Nein, positive Koordinaten, das Terminal wird den gewünschten Punkt selbst berechnen. Zum Beispiel: 15 Pixel von 2 Ecken
Danke, es hat funktioniert.
 
artmedia70:
Zeigen Sie uns Ihren Code, damit wir nicht raten müssen


Hergestellt im Gorando-Programm, mit dem Zusatz Ihres Martins.

//+------------------------------------------------------------------+
//| Copyright 2005, Gordago Software Corp.
//| http://www.gordago.com/ |
//| Version 2.0 |
//+------------------------------------------------------------------+

#property copyright "Copyright 2005, Gordago Software Corp."
#property link "http://www.gordago.com"

#define MIN_STOPLOSS_POINT 10
#define MIN_TAKEPROFIT_POINT 10
#define MAGIC 218650

externer String sNameExpert = "Erzeugen von Gordago";
extern int nAccount =0;
extern double dBuyStopLossPoint = 0;
extern double dSellStopLossPoint = 0;
extern double dBuyTakeProfitPoint = 0;
extern double dSellTakeProfitPoint = 0;
extern double dBuyTrailingStopPoint = 0;
extern double dSellTrailingStopPoint = 0;
extern double Lot = 0.10;
extern int nSlippage = 30;
extern bool lFlagUseHourTrade = True;
extern inttern nFromHourTrade = 0;
extern intToHourTrade = 23;
extern bool lFlagUseSound = False;
externer String sSoundFileName = "alert.wav";
extern color colorOpenBuy = Blau;
extern colorCloseBuy = Aqua;
extern colorOpenSell = Red;
extern colorCloseSell = Aqua;


void deinit() {
Kommentar(");
}

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start(){
wenn (lFlagUseHourTrade){
if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)) {
Comment("Die Zeit für den Handel ist noch nicht gekommen!");
zurück(0);
}
}

if(Balken < 100){
Print("Balken kleiner als 100");
zurück(0);
}

if(nAccount > 0 && nAccount != AccountNumber()){
Comment("Handel auf Konto: "+Kontonummer()+" VERBOTEN!");
zurück(0);
}

if((dBuyStopLossPoint > 0 && dBuyStopLossPoint < MIN_STOPLOSS_POINT) ||
(dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT)){
Print("StopLoss kleiner als " + MIN_STOPLOSS_POINT);
zurück(0);
}
if((dBuyTakeProfitPoint > 0 && dBuyTakeProfitPoint < MIN_TAKEPROFIT_POINT) ||
(dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT)){
Print("TakeProfit kleiner als " + MIN_TAKEPROFIT_POINT);
zurück(0);
}

double diOpen0=iOpen(NULL,60,0);
double d1=(0,00030);
double diHigh2=iHigh(NULL,60,0);
double diOpen3=iOpen(NULL,60,0);
double d4=(0,00030);
double diLow5=iLow(NULL,60,0);
double diOpen6=iOpen(NULL,60,1);
double diClose7=iClose(NULL,60,1);
double diOpen8=iOpen(NULL,60,2);
double diClose9=iClose(NULL,60,2);
double diOpen10=iOpen(NULL,60,0);
double d11=(0,00030);
double diHigh12=iHigh(NULL,60,0);
double diOpen13=iOpen(NULL,60,0);
double d14=(0,00030);
double diLow15=iLow(NULL,60,0);
double diOpen16=iOpen(NULL,60,1);
double diClose17=iClose(NULL,60,1);
double diOpen18=iOpen(NULL,60,2);
double diClose19=iClose(NULL,60,2);


if(AccountFreeMargin() < (1000*Lot)){
Print("Wir haben kein Geld. Freie Marge = " + AccountFreeMargin());
zurück(0);
}

bool lFlagBuyOpen = false, lFlagSellOpen = false, lFlagBuyClose = false, lFlagSellClose = false;

lFlagBuyOpen = (diOpen0+d1>diHigh2 && diOpen3-d4<diLow5 && diOpen6<diClose7 && diOpen8>diClose9);
lFlagSellOpen = (diOpen10+d11>diHigh12 && diOpen13-d14<diLow15 && diOpen16>diClose17 && diOpen18<diClose19);
lFlagBuyClose = False;
lFlagSellClose = False;

if (!ExistPositions()){

wenn (lFlagBuyOpen){
OpenBuy();
{ return(0);
}

wenn (lFlagSellOpen){
OpenSell();
zurück(0);
}
}
if(ExistPositions()){
if(OrderType()==OP_BUY){
if(lFlagBuyClose){
bool flagCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, nSlippage, colorCloseBuy);
wenn (flagCloseBuy && lFlagUseSound)
PlaySound(sSoundFileName);
zurück(0);
}
}
if(OrderType()==OP_SELL){
if(lFlagSellClose){
bool flagCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, nSlippage, colorCloseSell);
if (flagCloseSell && lFlagUseSound)
PlaySound(sSoundFileName);
zurück(0);
}
}
}

wenn (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0){

for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
bool lMagic = true;
if (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = false;

if (OrderSymbol()==Symbol() && lMagic) {
if (OrderType()==OP_BUY && dBuyTrailingStopPoint > 0) {
if (Bid-OrderOpenPrice() > dBuyTrailingStopPoint*Point) {
wenn (OrderStopLoss()<Bid-dBuyTrailingStopPoint*Point)
ModifyStopLoss(Bid-dBuyTrailingStopPoint*Point);
}
}
if (OrderType()==OP_SELL) {
if (OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point) {
wenn (OrderStopLoss()>Ask+dSellTrailingStopPoint*Point || OrderStopLoss()==0)
ModifyStopLoss(Ask+dSellTrailingStopPoint*Point);
}
}
}
}
}
}
zurück (0);
}

bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
bool lMagic = true;

if (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = false;

if (OrderSymbol()==Symbol() && lMagic) {
return(True);
}
}
}
return(false);
}

void ModifyStopLoss(double ldStopLoss) {
bool lFlagModify = OrderModify(OrderTicket(), OrderOpenPrice(), ldStopLoss, OrderTakeProfit(), 0, CLR_NONE);
if (lFlagModify && lFlagUseSound)
PlaySound(sSoundFileName);
}

//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 19.02.2008 |
//| Beschreibung: Gibt das Flag für den Verlust der letzten Position zurück.
//+----------------------------------------------------------------------------+
Parameter: //|
//| sy - Name des Instruments (" - beliebiges Symbol, |
//| NULL - aktuelles Symbol) |
| //| op - Operation (-1 - beliebige Position) |
//| mn - MagicNumber (-1 - beliebige Magie) |
//+----------------------------------------------------------------------------+
bool isLossLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, j=-1, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
wenn (OrderSymbol()==sy || sy==") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderProfit()<0) return(True)
}
return(False);
}





void OpenBuy(){
double dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;

wenn (isLossLastPos(NULL, -1, MAGIC))
Lose_Neu *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lose_Neu = Los;


wenn (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point;

wenn (dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Point;

int numorder = OrderSend(Symbol(), OP_BUY, Lots_New, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);

if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}

void OpenSell() {
double dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;

wenn (isLossLastPos(NULL, -1, MAGIC))
Lose_Neu *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lose_Neu = Los;

wenn (dSellStopLossPoint > 0)
dStopLoss = Ask+dSellStopLossPoint*Point;

wenn (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point;

int numorder = OrderSend(Symbol(),OP_SELL, Lots_New, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);

if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}

 
valenok2003:

Wenn es nicht schwierig ist, das Beispiel zu korrigieren, kann ich es aus irgendeinem Grund nicht zum Laufen bringen.
      ObjectSetText("info", str3, fontsize, fontname);
      ObjectSet("info", OBJPROP_CORNER, corner);
      ObjectSet("info", OBJPROP_XDISTANCE, xdistance);
      ObjectSet("info", OBJPROP_YDISTANCE, ydistance);
      ObjectSet("info", OBJPROP_COLOR, clr);

Ich habe die variable Ecke extern gemacht (der Einfachheit halber). Sie enthält die Nummer der Ecke, von der aus die Koordinaten berechnet werden sollen

 
Roger:


Versuchen Sie zu ersetzen durch

wenn (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0)

zu

wenn (OrderStopLoss()>pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0)

Roger, danke, aber es funktioniert immer noch nicht richtig. Ich habe es noch einmal mit einem Schleppnetz versucht, aber der Fehler ist immer noch da :( Gibt es einen Unterschied zwischen dem Schleppen einer Pose und dem Schleppen mehrerer Posen zur gleichen Zeit?
 
rensbit:

Ich habe die Eckvariable extern gemacht (der Einfachheit halber). Sie enthält die Nummer der Ecke, von der aus die Koordinaten berechnet werden sollen

Ich danke Ihnen!

Eine weitere Frage. Wie fügt man das Symbol aus Wingdings korrekt in die Kommentare ein?

 
welches Symbol?
 
rensbit:
welches Symbol?

Copyright
Grund der Beschwerde: