Wszystkie pytania dozwolone początkujących programistów
Re: Wszystkie pytania dozwolone początkujących programistów
Dzięki!!!
dziś miałem chwilę, żeby zmodyfikować kod i wygląda na to, że wszystko działa
dziś miałem chwilę, żeby zmodyfikować kod i wygląda na to, że wszystko działa
- sandramillerr
- Bywalec
- Posty: 15
- Rejestracja: 19 paź 2021, 12:40
Re: Wszystkie pytania dozwolone początkujących programistów
Wierzę również w przejmowanie kontroli nad moimi transakcjami od początku do początku. Nauczyłem się nawet kodować, bo szczerze mówiąc, nie ufam nikomu na rynku finansowym.
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
A końca nie widać!sandramillerr pisze: ↑25 paź 2021, 13:53Wierzę również w przejmowanie kontroli nad moimi transakcjami od początku do początku. Nauczyłem się nawet kodować, bo szczerze mówiąc, nie ufam nikomu na rynku finansowym.
BOT!
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
Witam,
w jaki sposób można stworzyć takie menu (extern ENUM_TIMEFRAMES timeFrame = PERIOD_M1;) tyle, że dla własnych wartości? np. Robot1, Robot2, Robot3, Robot4 itd. Dokładnie to chcę to wykorzystać do czegoś takiego:
if(wybor==Robot1)
{zadanie1}
if(wybor==Robot2)
{zadanie2}
if(wybor==Robot3)
{zadanie3}
w jaki sposób można stworzyć takie menu (extern ENUM_TIMEFRAMES timeFrame = PERIOD_M1;) tyle, że dla własnych wartości? np. Robot1, Robot2, Robot3, Robot4 itd. Dokładnie to chcę to wykorzystać do czegoś takiego:
if(wybor==Robot1)
{zadanie1}
if(wybor==Robot2)
{zadanie2}
if(wybor==Robot3)
{zadanie3}
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
Szymon_P pisze: ↑30 paź 2021, 13:45Witam,
w jaki sposób można stworzyć takie menu (extern ENUM_TIMEFRAMES timeFrame = PERIOD_M1;) tyle, że dla własnych wartości? np. Robot1, Robot2, Robot3, Robot4 itd.
xxx.png
Dokładnie to chcę to wykorzystać do czegoś takiego:
if(wybor==Robot1)
{zadanie1}
if(wybor==Robot2)
{zadanie2}
if(wybor==Robot3)
{zadanie3}
Kod: Zaznacz cały
enum ENUM_ROBOT
{
Robot1,
Robot2,
Robot3,
Robot4,
};
input ENUM_ROBOT Which_Robot = Robot1;
Kod: Zaznacz cały
enum ENUM_ROBOT
{
Robot1, // Kupuj na BO
Robot2, // Sprzedawaj na BO
Robot3, // Kupuj po retescie
Robot4, // Sprzedawaj po retescie
};
input ENUM_ROBOT Which_Robot = Robot1;
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
Chciałbym uzyskać ticket ostatniej otwartej pozycji, nie wiem co zrobiłem źle, kompiluje się poprawnie, ticketu nie pokazuje
Kod: Zaznacz cały
void OstatniaPozycja() //Ticket ostatniej transakcji)
{
datetime CzasOstatniejPozycji = 0;
for ( i=OrdersTotal()-1; i>=0; i--)
{
bool Z = OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol())
{ if(OrderOpenTime() > CzasOstatniejPozycji)
{
CzasOstatniejPozycji = OrderOpenTime();
OstatniTick = OrderTicket();
}
}
}
}
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
grzegrzyw pisze: ↑09 lis 2021, 15:43Chciałbym uzyskać ticket ostatniej otwartej pozycji, nie wiem co zrobiłem źle, kompiluje się poprawnie, ticketu nie pokazuje
Kod: Zaznacz cały
void OstatniaPozycja() //Ticket ostatniej transakcji) { datetime CzasOstatniejPozycji = 0; for ( i=OrdersTotal()-1; i>=0; i--) { bool Z = OrderSelect (i, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) { if(OrderOpenTime() > CzasOstatniejPozycji) { CzasOstatniejPozycji = OrderOpenTime(); OstatniTick = OrderTicket(); } } } }
Kod: Zaznacz cały
int LastOpenTicket(){
datetime lastTime = 0;
int lastTicket = -1; // None open.
for(pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
OrderSelect(pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == magic.number // my magic number
&& OrderSymbol() == Symbol() // and my pair.
&& OrderOpenTime() > lastTime
){
lastTime = OrderOpenTime();
lastTicket = OrderTicket();
}
return(lastTicket);
}
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
Dzięki Darek! Na Twoją pomoc w programowaniu zawsze można liczyć.
Re: Wszystkie pytania dozwolone początkujących programistów
Witam,
napisałem funkcję do obliczania MAX zakresu. Jeśli w iBarShift oraz Highest zamieniam 0 na PERIOD_M1 to nie liczy mi prawidłowo. Zależy mi aby liczyło tylko dla m1 bez względu na to na jakim TF mam otwarty wykres.
Czasy przeliczam w ten sposób:
zmienne datetime oblicz mi prawidłowo:
dt=CurTime();
Time1=StrToTime(TimeToStr(dt,TIME_DATE)+" "+Czas1);
Time2=StrToTime(TimeToStr(dt,TIME_DATE)+" "+Czas2);
double ZakresMAX(datetime T1, datetime T2)
{
//Obliczenie MAX z zakresu T1/T2//
int iBarBegin =iBarShift(NULL,0,T1);
int iBarEnd =iBarShift(NULL,0,T2);
double PoziomMAX =High[Highest(NULL,0,MODE_HIGH,iBarBegin-iBarEnd+1,iBarEnd)];
return PoziomMAX;
}
napisałem funkcję do obliczania MAX zakresu. Jeśli w iBarShift oraz Highest zamieniam 0 na PERIOD_M1 to nie liczy mi prawidłowo. Zależy mi aby liczyło tylko dla m1 bez względu na to na jakim TF mam otwarty wykres.
Czasy przeliczam w ten sposób:
zmienne datetime oblicz mi prawidłowo:
dt=CurTime();
Time1=StrToTime(TimeToStr(dt,TIME_DATE)+" "+Czas1);
Time2=StrToTime(TimeToStr(dt,TIME_DATE)+" "+Czas2);
double ZakresMAX(datetime T1, datetime T2)
{
//Obliczenie MAX z zakresu T1/T2//
int iBarBegin =iBarShift(NULL,0,T1);
int iBarEnd =iBarShift(NULL,0,T2);
double PoziomMAX =High[Highest(NULL,0,MODE_HIGH,iBarBegin-iBarEnd+1,iBarEnd)];
return PoziomMAX;
}
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
Być może dlatego, że funkcja jest iHighest(), nie Highest()?Szymon_P pisze: ↑22 lis 2021, 20:04Witam,
napisałem funkcję do obliczania MAX zakresu. Jeśli w iBarShift oraz Highest zamieniam 0 na PERIOD_M1 to nie liczy mi prawidłowo. Zależy mi aby liczyło tylko dla m1 bez względu na to na jakim TF mam otwarty wykres.
Czasy przeliczam w ten sposób:
zmienne datetime oblicz mi prawidłowo:
dt=CurTime();
Time1=StrToTime(TimeToStr(dt,TIME_DATE)+" "+Czas1);
Time2=StrToTime(TimeToStr(dt,TIME_DATE)+" "+Czas2);
double ZakresMAX(datetime T1, datetime T2)
{
//Obliczenie MAX z zakresu T1/T2//
int iBarBegin =iBarShift(NULL,0,T1);
int iBarEnd =iBarShift(NULL,0,T2);
double PoziomMAX =High[Highest(NULL,0,MODE_HIGH,iBarBegin-iBarEnd+1,iBarEnd)];
return PoziomMAX;
}
https://docs.mql4.com/series/ihighest
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.