wszyscy w koło zachwycają się czatem GTP z ciekawości założyłem konto i oto efekty.
Pierwsze polecenie:
Jeśli 3 świeczki pod rząd na wykresie H1 są spadkowe to otwiera pozycję sprzedaży z TP 20 pips i SL 500 pips
Kod wygenerowany pod MT5:
Kod: Zaznacz cały
void OnStart()
{
// Zmienna przechowująca informację o kierunku otwierania pozycji
int direction;
// Pobieranie danych o ostatniej trzeciej świecy
int barIndex = iBarShift(NULL, PERIOD_H1, 2);
double openPrice = iOpen(NULL, SYMBOL, PERIOD_H1, barIndex);
double closePrice = iClose(NULL, SYMBOL, PERIOD_H1, barIndex);
// Sprawdzanie, czy świeca jest spadkowa
if (closePrice < openPrice)
{
// Pobieranie danych o drugiej świecy
barIndex = iBarShift(NULL, PERIOD_H1, 1);
openPrice = iOpen(NULL, SYMBOL, PERIOD_H1, barIndex);
closePrice = iClose(NULL, SYMBOL, PERIOD_H1, barIndex);
// Sprawdzanie, czy świeca jest spadkowa
if (closePrice < openPrice)
{
// Pobieranie danych o pierwszej świecy
barIndex = iBarShift(NULL, PERIOD_H1, 0);
openPrice = iOpen(NULL, SYMBOL, PERIOD_H1, barIndex);
closePrice = iClose(NULL, SYMBOL, PERIOD_H1, barIndex);
// Sprawdzanie, czy świeca jest spadkowa
if (closePrice < openPrice)
{
direction = OP_SELL;
}
}
}
// Otwieranie pozycji sprzedaży
if (direction == OP_SELL)
{
OrderSend(SYMBOL, OP_SELL, MarketInfo(SYMBOL, MODE_LOTSIZE), Ask, 3, Ask - 20 * Point, Ask + 500 * Point, "My Order #1", 16384, 0, Green);
}
}
Napisz mi automat do gry na forxie
Kod:
Kod: Zaznacz cały
void OnStart()
{
// Zmienna przechowująca informację o kierunku otwierania pozycji
int direction = 0;
// Pobieranie danych o aktualnej sytuacji na rynku
double currentPrice = Ask;
double movingAverage = iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
double relativeStrengthIndex = iRSI(NULL, 0, 14, PRICE_CLOSE, 0);
// Analiza sytuacji na rynku i ustalanie kierunku otwierania pozycji
if (currentPrice > movingAverage && relativeStrengthIndex > 50)
{
direction = OP_BUY;
}
else if (currentPrice < movingAverage && relativeStrengthIndex < 50)
{
direction = OP_SELL;
}
// Otwieranie pozycji kupna
if (direction == OP_BUY)
{
double lots = MarketInfo(SYMBOL, MODE_LOTSIZE);
double bid = Bid;
double takeProfit = bid + 20 * Point;
double stopLoss = bid - 50 * Point;
if(OrderSend(SYMBOL, OP_BUY, lots, bid, 3, stopLoss, takeProfit, "My Order #1", 16384, 0, Green) < 0)
Print("Nie można otworzyć pozycji kupna. Kod błędu: ", GetLastError());
}
// Otwieranie pozycji sprzedaży
if (direction == OP_SELL)
{
double lots = MarketInfo(SYMBOL, MODE_LOTSIZE);
double ask = Ask;
double takeProfit = ask - 20 * Point;
double stopLoss = ask + 50 * Point;
if(OrderSend(SYMBOL, OP_SELL, lots, ask, 3, stopLoss, takeProfit, "My Order #1", 16384, 0, Green) < 0)
Print("Nie można otworzyć pozycji sprzedaży. Kod błędu: ", GetLastError());
}
}
Nie znam się na programowaniu, więc nie ocenię czy to jest coś warte.
Wrzucam w ramach ciekawostki ogólnie jestem zdumiony tym co potrafi to narzędzie... szykują się ciekawe czasy.