0
Это так шпаргалка мне, если соберусь делать :) 

uses crt;
const nmax=100;
var z,a:array[1..nmax] of integer;
    m,i,k,n,j,p:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Исходный массив:');
for i:=1 to m do
 begin
  z[i]:=random(50);
  write(z[i]:4);
 end;
writeln;
repeat
write('Сколько максимальных выбрать от 1 до ',m,' k=');
readln(k);
until k in [1..m];
n:=1;
a[n]:=z[1];{берем первый элемент в дополнительный массив}
for i:=2 to m do{смотрим остальные}
 begin
  n:=n+1;{увеличим размер доп. массива}
  if z[i]<=a[n-1] then a[n]:=z[i]{если не больше последнего, добавим в конец}
  else{иначе}
   begin
    j:=1;
    while a[j]>=z[i] do{найдем место для вставки}
    j:=j+1;
    for p:=n downto j+1 do
    a[p]:=a[p-1];{раздвинем доп. массив}
    a[j]:=z[i];{вставим}
   end;
 end;
{выведем первые к}
writeln('Первые ',k,' максимальных:');
for i:=1 to k do
write(a[i]:4);
readln
end.
avatar

AM2

  • 16 мая 2015, 20:25
0
и ещё 1я ма у Вас стоит медленная а 2я быстрая, а должно быть наоборот в настройках


Настройки ставил не я. Это в любое время можно поменять.

там где должен открыть сел он открыл бай и наоборот, потому что в настройках неверные машки


Наоборот сделал потому что при покупке ниже машки невозможно выставить стоплосс на машке как в ТЗ. Можно тейк, но никак не стоплосс

avatar

AM2

  • 16 мая 2015, 17:58
0
Не удержался поменял :) 




//+------------------------------------------------------------------+
//|                                                        MAExp.mq4 |
//|                                              Copyright 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "Moving Average sample expert advisor"

#define MAGICMA  20131111
//--- Inputs
input double Lots          =0.1;
input int    MovingPeriod  =12;
input int    MovingShift   =6;
input int    Delta         =6;
input int    Slip          =30;
input int    Count         =100;
//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int Orders(string symbol)
  {
   int buys=0,sells=0;
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//--- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   double ma;
   int    res;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//--- sell conditions
   if(Bid>ma && Bid-ma<Delta*Point)
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,"",MAGICMA,0,Red);
      return;
     }
//--- buy conditions
   if(Ask<ma && ma-Ask<Delta*Point)
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,"",MAGICMA,0,Blue);
      return;
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void ClosePos()
  {
   double ma;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Bid>ma)
           {
            CloseAll();
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Ask<ma)
           {
            CloseAll();
           }
         break;
        }
     }
//---
  }
//+------------------------------------------------------------------+  
void CloseAll()
  {
   bool cl,sel;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      sel=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol())
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
           {
            if(OrderType()==OP_BUY) cl=OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Blue);
            if(OrderType()==OP_SELL) cl=OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red);
           }
         Sleep(1000);
        }
     }
  }
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime lastbar=0;
   datetime curbar=Time[0];
   if(lastbar!=curbar)
     {
      lastbar=curbar;
      return (true);
     }
   else
     {
      return(false);
     }
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(NewBar())
     {
      if(Orders(Symbol())<=Count) OpenPos();
      ClosePos();
     }
//---
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 16 мая 2015, 15:09
0
Если смогу сделаю ориентировочно завтра
avatar

AM2

  • 16 мая 2015, 14:52
0
Поменяю сегодня вечером или завтра утром
avatar

AM2

  • 16 мая 2015, 14:47
0
Сегодня вечером буду смотреть что не так
avatar

AM2

  • 16 мая 2015, 14:45
0
При каком соотношении UP DOWN покупаем продаем?
avatar

AM2

  • 15 мая 2015, 15:37
0
Добавил стоп и трал по МА на расстоянии: www.opentraders.ru/downloads/729/

avatar

AM2

  • 15 мая 2015, 15:19
+1
Размещайте пожалуйста заказ в группе «Стол заказов»: zakaz.opentraders.ru/
avatar

AM2

  • 15 мая 2015, 14:54
0
Это все заново нужно переписывать. Я не делаю такие сложные.
avatar

AM2

  • 15 мая 2015, 12:37
0
За создание картинок по событию мыши я не возьмусь.
avatar

AM2

  • 15 мая 2015, 12:10
0
Нужно знать какая картинка, куда именно вставляется и др. опишите подробнее
avatar

AM2

  • 15 мая 2015, 11:18
0
В коде прописано только изменение цвета при наведении и нажатии кнопки.
avatar

AM2

  • 15 мая 2015, 10:14
+1
Какие картинки?
avatar

AM2

  • 15 мая 2015, 10:08
0
У меня получилось только в коде настраивать текст, строки и ряды: www.opentraders.ru/downloads/728/

avatar

AM2

  • 15 мая 2015, 09:46
0
Значит нужно в настройки вынести количество рядов и строк с названиями кнопок? Сколько максимум кнопок делать?
avatar

AM2

  • 14 мая 2015, 19:48
0
Завтра уже буду смотреть.
avatar

AM2

  • 14 мая 2015, 19:40